[Pick Up TS](4) 类的静态接口和实例接口

339 阅读1分钟
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