在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ TS官方文檔關(guān)于接口的的demo

TS官方文檔關(guān)于接口的的demo

當(dāng)你操作類(lèi)和接口的時(shí)候,你要知道類(lèi)是具有兩個(gè)類(lèi)型的:靜態(tài)部分的類(lèi)型和實(shí)例的類(lèi)型。 你會(huì)注意到,當(dāng)你用構(gòu)造器簽名去定義一個(gè)接口并試圖定義一個(gè)類(lèi)去實(shí)現(xiàn)這個(gè)接口時(shí)會(huì)得到一個(gè)錯(cuò)誤:

interface ClockConstructor {
    new (hour: number, minute: number): ClockInterface;
}

interface ClockInterface {
    tick();
}

class Clock implements ClockConstructor {
    currentTime: Date;
    constructor(h: number, m: number) { }
}

這里因?yàn)楫?dāng)一個(gè)類(lèi)實(shí)現(xiàn)了一個(gè)接口時(shí),只對(duì)其實(shí)例部分進(jìn)行類(lèi)型檢查。 constructor存在于類(lèi)的靜態(tài)部分,所以不在檢查的范圍內(nèi)。


以上就是這個(gè)demo內(nèi)容,有兩個(gè)地方想不明白:

  1. 文檔提到constructor存在于類(lèi)的靜態(tài)部分,但是類(lèi)的所有方法是存在的原型(prototype)上面的,這里的靜態(tài)指的是?
  2. ClockConstructor里面的new (hour: number, minute: number): ClockInterface是什么意思呢?
回答
編輯回答
凹凸曼
  • 靜態(tài)就是指的 class.prototype
  • new (hour: number, minute: number): ClockInterface 是指constructor的類(lèi)型簽名是(hour: number, minute: number),其構(gòu)造的對(duì)象類(lèi)型簽名是ClockInterface(就是指你實(shí)例化后的對(duì)象的結(jié)構(gòu)類(lèi)型)

這個(gè)原文檔有詳細(xì)的解釋?zhuān)篌w意思就是一個(gè)class的聲明,分為靜態(tài)和實(shí)例的兩個(gè)方面,雖然constructor是方法,但是它是prototype上的方法,算靜態(tài),所以對(duì)于它要使用兩個(gè)interface來(lái)描述。

可能說(shuō)的不對(duì),詳細(xì)的東西還是多看看文檔吧。

2017年6月13日 17:17