|
| 1 | +tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(13,1): error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray<B>'. |
| 2 | + Types of property 'concat' are incompatible. |
| 3 | + Type '{ (...items: A[][]): A[]; (...items: (A | A[])[]): A[]; }' is not assignable to type '{ <U extends ReadonlyArray<B>>(...items: U[]): B[]; (...items: B[][]): B[]; (...items: (B | B[])[]): B[]; }'. |
| 4 | + Type 'A[]' is not assignable to type 'B[]'. |
| 5 | + Type 'A' is not assignable to type 'B'. |
| 6 | + Property 'b' is missing in type 'A'. |
| 7 | +tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts(18,1): error TS2322: Type 'C<A>' is not assignable to type 'ReadonlyArray<B>'. |
| 8 | + Types of property 'concat' are incompatible. |
| 9 | + Type '{ (...items: A[][]): A[]; (...items: (A | A[])[]): A[]; }' is not assignable to type '{ <U extends ReadonlyArray<B>>(...items: U[]): B[]; (...items: B[][]): B[]; (...items: (B | B[])[]): B[]; }'. |
| 10 | + Type 'A[]' is not assignable to type 'B[]'. |
| 11 | + Type 'A' is not assignable to type 'B'. |
| 12 | + |
| 13 | + |
| 14 | +==== tests/cases/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.ts (2 errors) ==== |
| 15 | + class A { a } |
| 16 | + class B extends A { b } |
| 17 | + class C<T> extends Array<T> { c } |
| 18 | + declare var ara: A[]; |
| 19 | + declare var arb: B[]; |
| 20 | + declare var cra: C<A>; |
| 21 | + declare var crb: C<B>; |
| 22 | + declare var rra: ReadonlyArray<A>; |
| 23 | + declare var rrb: ReadonlyArray<B>; |
| 24 | + rra = ara; |
| 25 | + rrb = arb; // OK, Array<B> is assignable to ReadonlyArray<A> |
| 26 | + rra = arb; |
| 27 | + rrb = ara; // error: 'A' is not assignable to 'B' |
| 28 | + ~~~ |
| 29 | +!!! error TS2322: Type 'A[]' is not assignable to type 'ReadonlyArray<B>'. |
| 30 | +!!! error TS2322: Types of property 'concat' are incompatible. |
| 31 | +!!! error TS2322: Type '{ (...items: A[][]): A[]; (...items: (A | A[])[]): A[]; }' is not assignable to type '{ <U extends ReadonlyArray<B>>(...items: U[]): B[]; (...items: B[][]): B[]; (...items: (B | B[])[]): B[]; }'. |
| 32 | +!!! error TS2322: Type 'A[]' is not assignable to type 'B[]'. |
| 33 | +!!! error TS2322: Type 'A' is not assignable to type 'B'. |
| 34 | +!!! error TS2322: Property 'b' is missing in type 'A'. |
| 35 | + |
| 36 | + rra = cra; |
| 37 | + rra = crb; // OK, C<B> is assignable to ReadonlyArray<A> |
| 38 | + rrb = crb; |
| 39 | + rrb = cra; // error: 'A' is not assignable to 'B' |
| 40 | + ~~~ |
| 41 | +!!! error TS2322: Type 'C<A>' is not assignable to type 'ReadonlyArray<B>'. |
| 42 | +!!! error TS2322: Types of property 'concat' are incompatible. |
| 43 | +!!! error TS2322: Type '{ (...items: A[][]): A[]; (...items: (A | A[])[]): A[]; }' is not assignable to type '{ <U extends ReadonlyArray<B>>(...items: U[]): B[]; (...items: B[][]): B[]; (...items: (B | B[])[]): B[]; }'. |
| 44 | +!!! error TS2322: Type 'A[]' is not assignable to type 'B[]'. |
| 45 | +!!! error TS2322: Type 'A' is not assignable to type 'B'. |
| 46 | + |
0 commit comments