diff --git a/goldens/public-api/common/common.d.ts b/goldens/public-api/common/common.d.ts index 89ac6ad48e..647fd3f2f9 100644 --- a/goldens/public-api/common/common.d.ts +++ b/goldens/public-api/common/common.d.ts @@ -381,9 +381,10 @@ export declare function registerLocaleData(data: any, localeId?: string | any, e export declare class SlicePipe implements PipeTransform { transform(value: ReadonlyArray, start: number, end?: number): Array; + transform(value: null | undefined, start: number, end?: number): null; + transform(value: ReadonlyArray | null | undefined, start: number, end?: number): Array | null; transform(value: string, start: number, end?: number): string; - transform(value: null, start: number, end?: number): null; - transform(value: undefined, start: number, end?: number): undefined; + transform(value: string | null | undefined, start: number, end?: number): string | null; } export declare type Time = { diff --git a/packages/common/src/pipes/slice_pipe.ts b/packages/common/src/pipes/slice_pipe.ts index 07e6ba4014..90bf602f92 100644 --- a/packages/common/src/pipes/slice_pipe.ts +++ b/packages/common/src/pipes/slice_pipe.ts @@ -62,11 +62,13 @@ export class SlicePipe implements PipeTransform { * - **if negative**: return all items before `end` index from the end of the list or string. */ transform(value: ReadonlyArray, start: number, end?: number): Array; + transform(value: null|undefined, start: number, end?: number): null; + transform(value: ReadonlyArray|null|undefined, start: number, end?: number): Array|null; transform(value: string, start: number, end?: number): string; - transform(value: null, start: number, end?: number): null; - transform(value: undefined, start: number, end?: number): undefined; - transform(value: any, start: number, end?: number): any { - if (value == null) return value; + transform(value: string|null|undefined, start: number, end?: number): string|null; + transform(value: ReadonlyArray|string|null|undefined, start: number, end?: number): + Array|string|null { + if (value == null) return null; if (!this.supports(value)) { throw invalidPipeArgumentError(SlicePipe, value); diff --git a/packages/common/test/pipes/slice_pipe_spec.ts b/packages/common/test/pipes/slice_pipe_spec.ts index 1ab7398c4d..c0172e6278 100644 --- a/packages/common/test/pipes/slice_pipe_spec.ts +++ b/packages/common/test/pipes/slice_pipe_spec.ts @@ -47,8 +47,8 @@ import {expect} from '@angular/platform-browser/testing/src/matchers'; expect(pipe.transform(null, 1)).toBe(null); }); - it('should return undefined if the value is undefined', () => { - expect(pipe.transform(undefined, 1)).toBe(undefined); + it('should return null if the value is undefined', () => { + expect(pipe.transform(undefined, 1)).toBe(null); }); it('should return all items after START index when START is positive and END is omitted',