tests/cases/compiler/typeofProperty.ts(3,15): error TS2304: Cannot find name 'a'. tests/cases/compiler/typeofProperty.ts(7,15): error TS2304: Cannot find name 'd'. tests/cases/compiler/typeofProperty.ts(12,15): error TS2304: Cannot find name 'e'. tests/cases/compiler/typeofProperty.ts(17,15): error TS2304: Cannot find name 'a'. tests/cases/compiler/typeofProperty.ts(22,15): error TS2304: Cannot find name 'd'. tests/cases/compiler/typeofProperty.ts(27,15): error TS2304: Cannot find name 'e'. ==== tests/cases/compiler/typeofProperty.ts (6 errors) ==== interface I1 { a: number; b: typeof a; // Should yield error (a is not a value) ~ !!! error TS2304: Cannot find name 'a'. } interface I2 { c: typeof d; // Should yield error (d is not a value) ~ !!! error TS2304: Cannot find name 'd'. d: string; } interface I3 { e: typeof e; // Should yield error (e is not a value) ~ !!! error TS2304: Cannot find name 'e'. } class C1 { a: number; b: typeof a; // Should yield error (a is not a value) ~ !!! error TS2304: Cannot find name 'a'. } class C2 { c: typeof d; // Should yield error (d is not a value) ~ !!! error TS2304: Cannot find name 'd'. d: string; } class C3 { e: typeof e; // Should yield error (e is not a value) ~ !!! error TS2304: Cannot find name 'e'. } 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