75 lines
1.2 KiB
TypeScript
75 lines
1.2 KiB
TypeScript
//// [typeofProperty.ts]
|
|
|
|
interface I1 {
|
|
a: number;
|
|
b: typeof a; // Should yield error (a is not a value)
|
|
}
|
|
|
|
interface I2 {
|
|
c: typeof d; // Should yield error (d is not a value)
|
|
d: string;
|
|
}
|
|
|
|
interface I3 {
|
|
e: typeof e; // Should yield error (e is not a value)
|
|
}
|
|
|
|
class C1 {
|
|
a: number;
|
|
b: typeof a; // Should yield error (a is not a value)
|
|
}
|
|
|
|
|
|
class C2 {
|
|
c: typeof d; // Should yield error (d is not a value)
|
|
d: string;
|
|
}
|
|
|
|
class C3 {
|
|
e: typeof e; // Should yield error (e is not a value)
|
|
}
|
|
|
|
|
|
|
|
interface ValidInterface {
|
|
x: string;
|
|
}
|
|
|
|
class ValidClass implements ValidInterface {
|
|
x: string;
|
|
}
|
|
|
|
var vcInstance = new ValidClass();
|
|
var viInstance = vcInstance;
|
|
|
|
var x1: typeof vcInstance.x; // x1: string
|
|
var x2: typeof viInstance.x; // x2: string
|
|
|
|
|
|
|
|
|
|
//// [typeofProperty.js]
|
|
var C1 = (function () {
|
|
function C1() {
|
|
}
|
|
return C1;
|
|
})();
|
|
var C2 = (function () {
|
|
function C2() {
|
|
}
|
|
return C2;
|
|
})();
|
|
var C3 = (function () {
|
|
function C3() {
|
|
}
|
|
return C3;
|
|
})();
|
|
var ValidClass = (function () {
|
|
function ValidClass() {
|
|
}
|
|
return ValidClass;
|
|
})();
|
|
var vcInstance = new ValidClass();
|
|
var viInstance = vcInstance;
|
|
var x1; // x1: string
|
|
var x2; // x2: string
|