50 lines
No EOL
1.8 KiB
Text
50 lines
No EOL
1.8 KiB
Text
tests/cases/compiler/fuzzy.ts(13,18): error TS2420: Class 'C' incorrectly implements interface 'I'.
|
|
Property 'alsoWorks' is missing in type 'C'.
|
|
tests/cases/compiler/fuzzy.ts(21,20): error TS2322: Type '{ anything: number; oneI: C; }' is not assignable to type 'R'.
|
|
Types of property 'oneI' are incompatible.
|
|
Type 'C' is not assignable to type 'I'.
|
|
tests/cases/compiler/fuzzy.ts(25,20): error TS2352: Neither type '{ oneI: C; }' nor type 'R' is assignable to the other.
|
|
Property 'anything' is missing in type '{ oneI: C; }'.
|
|
|
|
|
|
==== tests/cases/compiler/fuzzy.ts (3 errors) ====
|
|
module M {
|
|
export interface I {
|
|
works:()=>R;
|
|
alsoWorks:()=>R;
|
|
doesntWork:()=>R;
|
|
}
|
|
|
|
export interface R {
|
|
anything:number;
|
|
oneI:I;
|
|
}
|
|
|
|
export class C implements I {
|
|
~
|
|
!!! error TS2420: Class 'C' incorrectly implements interface 'I'.
|
|
!!! error TS2420: Property 'alsoWorks' is missing in type 'C'.
|
|
constructor(public x:number) {
|
|
}
|
|
works():R {
|
|
return <R>({ anything: 1 });
|
|
}
|
|
|
|
doesntWork():R {
|
|
return { anything:1, oneI:this };
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
!!! error TS2322: Type '{ anything: number; oneI: C; }' is not assignable to type 'R'.
|
|
!!! error TS2322: Types of property 'oneI' are incompatible.
|
|
!!! error TS2322: Type 'C' is not assignable to type 'I'.
|
|
}
|
|
|
|
worksToo():R {
|
|
return <R>({ oneI: this });
|
|
~~~~~~~~~~~~~~~~~~~
|
|
!!! error TS2352: Neither type '{ oneI: C; }' nor type 'R' is assignable to the other.
|
|
!!! error TS2352: Property 'anything' is missing in type '{ oneI: C; }'.
|
|
}
|
|
}
|
|
}
|
|
|
|
|