86 lines
5.9 KiB
Plaintext
86 lines
5.9 KiB
Plaintext
tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(10,5): error TS2322: Type 'undefined[]' is not assignable to type '[any, any, any]'.
|
|
Property '0' is missing in type 'undefined[]'.
|
|
tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(11,5): error TS2322: Type '[string, number, boolean]' is not assignable to type '[boolean, string, number]'.
|
|
Types of property '0' are incompatible.
|
|
Type 'string' is not assignable to type 'boolean'.
|
|
tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(17,5): error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'.
|
|
Types of property 'pop' are incompatible.
|
|
Type '() => number | string | boolean' is not assignable to type '() => number'.
|
|
Type 'number | string | boolean' is not assignable to type 'number'.
|
|
Type 'string' is not assignable to type 'number'.
|
|
tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(32,5): error TS2322: Type '(number[] | string[])[]' is not assignable to type 'tup'.
|
|
Property '0' is missing in type '(number[] | string[])[]'.
|
|
tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(33,5): error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'.
|
|
Property '0' is missing in type 'number[]'.
|
|
tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error TS2322: Type '(number | string)[]' is not assignable to type 'myArray'.
|
|
Types of property 'push' are incompatible.
|
|
Type '(...items: (number | string)[]) => number' is not assignable to type '(...items: Number[]) => number'.
|
|
Types of parameters 'items' and 'items' are incompatible.
|
|
Type 'number | string' is not assignable to type 'Number'.
|
|
Type 'string' is not assignable to type 'Number'.
|
|
Property 'toFixed' is missing in type 'String'.
|
|
|
|
|
|
==== tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts (6 errors) ====
|
|
// Each element expression in a non-empty array literal is processed as follows:
|
|
// - If the array literal contains no spread elements, and if the array literal is contextually typed (section 4.19)
|
|
// by a type T and T has a property with the numeric name N, where N is the index of the element expression in the array literal,
|
|
// the element expression is contextually typed by the type of that property.
|
|
|
|
// The resulting type an array literal expression is determined as follows:
|
|
// - If the array literal contains no spread elements and is contextually typed by a tuple-like type,
|
|
// the resulting type is a tuple type constructed from the types of the element expressions.
|
|
|
|
var a0: [any, any, any] = []; // Error
|
|
~~
|
|
!!! error TS2322: Type 'undefined[]' is not assignable to type '[any, any, any]'.
|
|
!!! error TS2322: Property '0' is missing in type 'undefined[]'.
|
|
var a1: [boolean, string, number] = ["string", 1, true]; // Error
|
|
~~
|
|
!!! error TS2322: Type '[string, number, boolean]' is not assignable to type '[boolean, string, number]'.
|
|
!!! error TS2322: Types of property '0' are incompatible.
|
|
!!! error TS2322: Type 'string' is not assignable to type 'boolean'.
|
|
|
|
// The resulting type an array literal expression is determined as follows:
|
|
// - If the array literal contains no spread elements and is an array assignment pattern in a destructuring assignment (section 4.17.1),
|
|
// the resulting type is a tuple type constructed from the types of the element expressions.
|
|
|
|
var [b1, b2]: [number, number] = [1, 2, "string", true];
|
|
~~~~~~~~
|
|
!!! error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'.
|
|
!!! error TS2322: Types of property 'pop' are incompatible.
|
|
!!! error TS2322: Type '() => number | string | boolean' is not assignable to type '() => number'.
|
|
!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number'.
|
|
!!! error TS2322: Type 'string' is not assignable to type 'number'.
|
|
|
|
// The resulting type an array literal expression is determined as follows:
|
|
// - the resulting type is an array type with an element type that is the union of the types of the
|
|
// non - spread element expressions and the numeric index signature types of the spread element expressions
|
|
var temp = ["s", "t", "r"];
|
|
var temp1 = [1, 2, 3];
|
|
var temp2: [number[], string[]] = [[1, 2, 3], ["hello", "string"]];
|
|
|
|
interface tup {
|
|
0: number[]|string[];
|
|
1: number[]|string[];
|
|
}
|
|
interface myArray extends Array<Number> { }
|
|
interface myArray2 extends Array<Number|String> { }
|
|
var c0: tup = [...temp2]; // Error
|
|
~~
|
|
!!! error TS2322: Type '(number[] | string[])[]' is not assignable to type 'tup'.
|
|
!!! error TS2322: Property '0' is missing in type '(number[] | string[])[]'.
|
|
var c1: [number, number, number] = [...temp1]; // Error cannot assign number[] to [number, number, number]
|
|
~~
|
|
!!! error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'.
|
|
!!! error TS2322: Property '0' is missing in type 'number[]'.
|
|
var c2: myArray = [...temp1, ...temp]; // Error cannot assign (number|string)[] to number[]
|
|
~~
|
|
!!! error TS2322: Type '(number | string)[]' is not assignable to type 'myArray'.
|
|
!!! error TS2322: Types of property 'push' are incompatible.
|
|
!!! error TS2322: Type '(...items: (number | string)[]) => number' is not assignable to type '(...items: Number[]) => number'.
|
|
!!! error TS2322: Types of parameters 'items' and 'items' are incompatible.
|
|
!!! error TS2322: Type 'number | string' is not assignable to type 'Number'.
|
|
!!! error TS2322: Type 'string' is not assignable to type 'Number'.
|
|
!!! error TS2322: Property 'toFixed' is missing in type 'String'.
|
|
|