45 lines
No EOL
1.3 KiB
Text
45 lines
No EOL
1.3 KiB
Text
tests/cases/compiler/typeComparisonCaching.ts(26,1): error TS2322: Type 'B' is not assignable to type 'A'.
|
|
Types of property 's' are incompatible.
|
|
Type 'number' is not assignable to type 'string'.
|
|
tests/cases/compiler/typeComparisonCaching.ts(27,1): error TS2322: Type 'D' is not assignable to type 'C'.
|
|
Types of property 'q' are incompatible.
|
|
Type 'B' is not assignable to type 'A'.
|
|
|
|
|
|
==== tests/cases/compiler/typeComparisonCaching.ts (2 errors) ====
|
|
// Check that we only cache results of type comparisons that are free of assumptions
|
|
|
|
interface A {
|
|
p: C;
|
|
s: string;
|
|
}
|
|
|
|
interface B {
|
|
p: D;
|
|
s: number;
|
|
}
|
|
|
|
interface C {
|
|
q: A;
|
|
}
|
|
|
|
interface D {
|
|
q: B;
|
|
}
|
|
|
|
var a: A;
|
|
var b: B;
|
|
var c: C;
|
|
var d: D;
|
|
|
|
a = b;
|
|
~
|
|
!!! error TS2322: Type 'B' is not assignable to type 'A'.
|
|
!!! error TS2322: Types of property 's' are incompatible.
|
|
!!! error TS2322: Type 'number' is not assignable to type 'string'.
|
|
c = d; // Should not be allowed
|
|
~
|
|
!!! error TS2322: Type 'D' is not assignable to type 'C'.
|
|
!!! error TS2322: Types of property 'q' are incompatible.
|
|
!!! error TS2322: Type 'B' is not assignable to type 'A'.
|
|
|