最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解什么是TypeScript里的Constructor?signature

 更新時間:2023年07月27日 14:35:08   作者:JerryWang_汪子熙  
這篇文章主要介紹了什么是TypeScript里的Constructor?signature詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Constructor signature

TypeScript 官方文檔里關(guān)于 Constructor signature 只有這短短的一段話:

JavaScript functions can also be invoked with the new operator. TypeScript refers to these as constructors because they usually create a new object. You can write a construct signature by adding the new keyword in front of a call signature:

JavaScript 函數(shù)也可以使用 new 運算符調(diào)用。 TypeScript 將這些稱為構(gòu)造函數(shù),因為它們通常會創(chuàng)建一個新對象。

編寫構(gòu)造簽名

您可以通過在調(diào)用簽名前添加 new 關(guān)鍵字來編寫構(gòu)造簽名:

type SomeConstructor = {
  new (s: string): SomeObject;
};
function fn(ctor: SomeConstructor) {
  return new ctor("hello");
}

但這個例子還是看得我一頭霧水,自己摸索了一下,寫了一個例子:

type Jerry = {
    score: number;
}
type SomeConstructor = {
    new(s: number): Jerry;
};
class MyConstructor implements Jerry{
    score: number;
    constructor(score: number){
        this.score = score;
    }
}
function demo(ctor: SomeConstructor, number:number) {
    return new ctor(number);
}
console.log('Ethan:' , demo(MyConstructor, 100));
console.log('Ethan:' , demo(MyConstructor, 200));

定義新的函數(shù)類型

下面的代碼使用 constructor signature 定義了一個新的函數(shù)類型:

接收的輸入是 number,輸出是自定義類型 Jerry.

如果去掉 new,就是我們已經(jīng)熟悉的 call signature 語法.

class MyConstructor 實現(xiàn)了 Jerry 類型:

MyConstructor 可以看成 SomeConstructor 的一種具體實現(xiàn)。

這樣,凡是輸入?yún)?shù)需要傳入 SomeConstructor 的地方,我傳 MyConstructor 進去,一樣能夠工作。

demo 在這里相當于工廠函數(shù),我們可以看到,盡管應(yīng)用代碼里沒有顯式使用 new 關(guān)鍵字,最后還是獲得了兩個不同的實例:

以上就是詳解什么是TypeScript里的Constructor signature的詳細內(nèi)容,更多關(guān)于TypeScript Constructor signature的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

治县。| 额济纳旗| 玛曲县| 祥云县| 天门市| 洪泽县| 无棣县| 黄石市| 治县。| 内乡县| 新兴县| 海晏县| 舟曲县| 双江| 张家川| 河津市| 寻甸| 于田县| 镇原县| 苍梧县| 漳浦县| 安福县| 高雄县| 和田县| 汝州市| 芦溪县| 库尔勒市| 大姚县| 蒙城县| 普洱| 宜宾市| 东乌珠穆沁旗| 简阳市| 连江县| 榕江县| 抚顺县| 抚州市| 凤山市| 乌兰浩特市| 柳林县| 安乡县|