44 lines
No EOL
1.5 KiB
Text
44 lines
No EOL
1.5 KiB
Text
tests/cases/conformance/classes/constructorDeclarations/constructorWithAssignableReturnExpression.ts(12,16): error TS2409: Return type of constructor signature must be assignable to the instance type of the class
|
|
tests/cases/conformance/classes/constructorDeclarations/constructorWithAssignableReturnExpression.ts(26,16): error TS2409: Return type of constructor signature must be assignable to the instance type of the class
|
|
|
|
|
|
==== tests/cases/conformance/classes/constructorDeclarations/constructorWithAssignableReturnExpression.ts (2 errors) ====
|
|
// a class constructor may return an expression, it must be assignable to the class instance type to be valid
|
|
|
|
class C {
|
|
constructor() {
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
class D {
|
|
x: number;
|
|
constructor() {
|
|
return 1; // error
|
|
~
|
|
!!! error TS2409: Return type of constructor signature must be assignable to the instance type of the class
|
|
}
|
|
}
|
|
|
|
class E {
|
|
x: number;
|
|
constructor() {
|
|
return { x: 1 };
|
|
}
|
|
}
|
|
|
|
class F<T> {
|
|
x: T;
|
|
constructor() {
|
|
return { x: 1 }; // error
|
|
~~~~~~~~
|
|
!!! error TS2409: Return type of constructor signature must be assignable to the instance type of the class
|
|
}
|
|
}
|
|
|
|
class G<T> {
|
|
x: T;
|
|
constructor() {
|
|
return { x: <T>null };
|
|
}
|
|
} |