TypeScript/tests/baselines/reference/constructorWithAssignableReturnExpression.js
2014-08-14 06:42:18 -07:00

70 lines
1.2 KiB
JavaScript

//// [constructorWithAssignableReturnExpression.ts]
// 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
}
}
class E {
x: number;
constructor() {
return { x: 1 };
}
}
class F<T> {
x: T;
constructor() {
return { x: 1 }; // error
}
}
class G<T> {
x: T;
constructor() {
return { x: <T>null };
}
}
//// [constructorWithAssignableReturnExpression.js]
// a class constructor may return an expression, it must be assignable to the class instance type to be valid
var C = (function () {
function C() {
return 1;
}
return C;
})();
var D = (function () {
function D() {
return 1;
}
return D;
})();
var E = (function () {
function E() {
return { x: 1 };
}
return E;
})();
var F = (function () {
function F() {
return { x: 1 };
}
return F;
})();
var G = (function () {
function G() {
return { x: null };
}
return G;
})();