interface ClockConstructor {
new (hour: number, minute: number);
}
interface ClockInterface {
tick();
}
const Clock: ClockConstructor = class Clock implements ClockInterface {
constructor(h: number, m: number) {}
tick() {
console.log("beep beep");
}
}
上面写了2个接口,第一个接口是静态接口,规定了类的静态属性,其中就包括constructor方法;第二个接口是类实现的接口,规定了类的实例属性。
另外,比较两个类类型的对象时,只有实例的成员会被比较。静态成员和构造函数不在比较的范围内。
class Animal {
feet: number;
constructor(name: string, numFeet: number) { }
}
class Size {
feet: number;
constructor(numFeet: number) { }
}
let a: Animal;
let s: Size;
a = s; // OK
s = a; // OK