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

鍍金池/ 問(wèn)答/C  HTML/ typescript這個(gè)語(yǔ)法怎么理解?

typescript這個(gè)語(yǔ)法怎么理解?

function classDecorator<T extends {new(...args:any[]):{}}>(constructor:T) {
    return class extends constructor {
        newProperty = "new property";
        hello = "override";
    }
}
<T extends {new(...args:any[]):{}}>(constructor:T)

這句語(yǔ)法好奇怪,可以解釋下嗎?

class extends constructor

這又是什么?class extends?

回答
編輯回答
離魂曲

先說(shuō)第一個(gè)問(wèn)題<T extends {new(...args:any[]):{}}>(constructor:T)這里外面的尖括號(hào)這是ts的泛型語(yǔ)法,具體的語(yǔ)法規(guī)則看這里,...args,這里一小段是ECMAScript6的擴(kuò)展運(yùn)算符語(yǔ)法,具體的規(guī)則看這里。

第二個(gè)問(wèn)題class extends constructor這個(gè)是ECMAScript6的類(lèi)繼承語(yǔ)法,具體的語(yǔ)法規(guī)則看這里

2018年4月18日 01:24
編輯回答
孤島

我在看 typescript 裝飾器的時(shí)候也看到這個(gè)例子,這個(gè)函數(shù)的作用 是說(shuō) 重載構(gòu)造函數(shù)(真是高端...)

extends 是關(guān)鍵字, 這個(gè)關(guān)鍵字可以實(shí)現(xiàn)泛型約束。

{new(...args:any[]):{}} 是用來(lái)描述約束條件的。

new (...args: any[]) 是 a mixin constructor type, mixin constructor type 是 TypeScript 2.2 新增

new (...args: any[]) 表示 傳入的類(lèi)型是 mixin constructor type

:{} 表示 這個(gè) a mixin constructor type 返回值類(lèi)型 是 對(duì)象

2017年6月7日 04:42