TypeScript/tests/baselines/reference/arrayLiteralWidened.types
Anders Hejlsberg 20bab14224 Add tests
2016-06-02 09:39:47 -07:00

84 lines
1.7 KiB
Text

=== tests/cases/conformance/types/typeRelationships/widenedTypes/arrayLiteralWidened.ts ===
// array literals are widened upon assignment according to their element type
var a = []; // any[]
>a : any[]
>[] : undefined[]
var a = [,,];
>a : any[]
>[,,] : undefined[]
> : undefined
> : undefined
var a = [null, null];
>a : any[]
>[null, null] : null[]
>null : null
>null : null
var a = [undefined, undefined];
>a : any[]
>[undefined, undefined] : undefined[]
>undefined : undefined
>undefined : undefined
var b = [[], [null, null]]; // any[][]
>b : any[][]
>[[], [null, null]] : undefined[][]
>[] : undefined[]
>[null, null] : null[]
>null : null
>null : null
var b = [[], []];
>b : any[][]
>[[], []] : undefined[][]
>[] : undefined[]
>[] : undefined[]
var b = [[undefined, undefined]];
>b : any[][]
>[[undefined, undefined]] : undefined[][]
>[undefined, undefined] : undefined[]
>undefined : undefined
>undefined : undefined
var c = [[[]]]; // any[][][]
>c : any[][][]
>[[[]]] : undefined[][][]
>[[]] : undefined[][]
>[] : undefined[]
var c = [[[null]],[undefined]]
>c : any[][][]
>[[[null]],[undefined]] : null[][][]
>[[null]] : null[][]
>[null] : null[]
>null : null
>[undefined] : undefined[]
>undefined : undefined
// no widening when one or more elements are non-widening
var x: undefined = undefined;
>x : undefined
>undefined : undefined
var d = [x];
>d : undefined[]
>[x] : undefined[]
>x : undefined
var d = [, x];
>d : undefined[]
>[, x] : undefined[]
> : undefined
>x : undefined
var d = [undefined, x];
>d : undefined[]
>[undefined, x] : undefined[]
>undefined : undefined
>x : undefined