50 lines
2.8 KiB
Plaintext
50 lines
2.8 KiB
Plaintext
tests/cases/conformance/expressions/arrayLiterals/arrayLiterals.ts(24,77): error TS2322: Type '({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[]' is not assignable to type '{ [n: number]: { a: string; b: number; }; }'.
|
|
Index signatures are incompatible.
|
|
Type '{ a: string; b: number; c: string; } | { a: string; b: number; c: number; }' is not assignable to type '{ a: string; b: number; }'.
|
|
Type '{ a: string; b: number; c: string; }' is not assignable to type '{ a: string; b: number; }'.
|
|
Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'.
|
|
|
|
|
|
==== tests/cases/conformance/expressions/arrayLiterals/arrayLiterals.ts (1 errors) ====
|
|
// Empty array literal with no contextual type has type Undefined[]
|
|
|
|
var arr1= [[], [1], ['']];
|
|
|
|
var arr2 = [[null], [1], ['']];
|
|
|
|
|
|
// Array literal with elements of only EveryType E has type E[]
|
|
var stringArrArr = [[''], [""]];
|
|
|
|
var stringArr = ['', ""];
|
|
|
|
var numberArr = [0, 0.0, 0x00, 1e1];
|
|
|
|
var boolArr = [false, true, false, true];
|
|
|
|
class C { private p; }
|
|
var classArr = [new C(), new C()];
|
|
|
|
var classTypeArray = [C, C, C];
|
|
var classTypeArray: Array<typeof C>; // Should OK, not be a parse error
|
|
|
|
// Contextual type C with numeric index signature makes array literal of EveryType E of type BCT(E,C)[]
|
|
var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }];
|
|
~~~~~
|
|
!!! error TS2322: Type '({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[]' is not assignable to type '{ [n: number]: { a: string; b: number; }; }'.
|
|
!!! error TS2322: Index signatures are incompatible.
|
|
!!! error TS2322: Type '{ a: string; b: number; c: string; } | { a: string; b: number; c: number; }' is not assignable to type '{ a: string; b: number; }'.
|
|
!!! error TS2322: Type '{ a: string; b: number; c: string; }' is not assignable to type '{ a: string; b: number; }'.
|
|
!!! error TS2322: Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'.
|
|
var context2 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }];
|
|
|
|
// Contextual type C with numeric index signature of type Base makes array literal of Derived have type Base[]
|
|
class Base { private p; }
|
|
class Derived1 extends Base { private m };
|
|
class Derived2 extends Base { private n };
|
|
var context3: Base[] = [new Derived1(), new Derived2()];
|
|
|
|
// Contextual type C with numeric index signature of type Base makes array literal of Derived1 and Derived2 have type Base[]
|
|
var context4: Base[] = [new Derived1(), new Derived1()];
|
|
|
|
|