欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解什么是TypeScript里的Constructor?signature

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

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 進(jìn)去,一樣能夠工作。

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

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

相關(guān)文章

  • type-challenge刷題(easy部分)示例詳解

    type-challenge刷題(easy部分)示例詳解

    這篇文章主要為大家介紹了type-challenge刷題(easy部分)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • TypeScript逆變之條件推斷和泛型的應(yīng)用示例詳解

    TypeScript逆變之條件推斷和泛型的應(yīng)用示例詳解

    這篇文章主要為大家介紹了TypeScript逆變之條件推斷和泛型的應(yīng)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Typescript是必須要學(xué)習(xí)嗎?如何學(xué)習(xí)TS全棧開發(fā)

    Typescript是必須要學(xué)習(xí)嗎?如何學(xué)習(xí)TS全棧開發(fā)

    Typescript目前在前端,網(wǎng)站,小程序中的位置基本無可替代,同時也可以構(gòu)建完美的CLI應(yīng)用。在移動,桌面,后端方面,性能不是要求很高的情況下完全可以勝任,并且在區(qū)塊鏈,嵌入式,人工智能方面也開始茁壯成長。
    2022-12-12
  • postman數(shù)據(jù)加解密實現(xiàn)APP登入接口模擬請求

    postman數(shù)據(jù)加解密實現(xiàn)APP登入接口模擬請求

    對于Postman的使用,一般情況下只要發(fā)發(fā)確定的請求與參數(shù)就可以的了,然而,在使用的時候,尤其是接口測試時,請求接口的設(shè)計里面都有數(shù)據(jù)加密,參數(shù)驗簽,返回數(shù)據(jù)也有進(jìn)行加密的,這個時候就需要使用一些腳本做處理,模擬app登入請求的操作
    2021-08-08
  • typescript在vue中的入門案例代碼demo

    typescript在vue中的入門案例代碼demo

    這篇文章主要介紹了typescript在vue中的入門案例代碼demo,使用技術(shù)棧vue2+typescript+scss入門練手項目,天氣預(yù)報demo,需要的朋友可以參考下。
    2022-12-12
  • TypeScript實現(xiàn)類型安全的EventEmitter

    TypeScript實現(xiàn)類型安全的EventEmitter

    這篇文章主要為大家介紹了TypeScript實現(xiàn)類型安全的EventEmitter示例詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • TypeScript開發(fā)HapiJS應(yīng)用詳解

    TypeScript開發(fā)HapiJS應(yīng)用詳解

    這篇文章主要為大家介紹了TypeScript開發(fā)HapiJS應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Three.js引入Cannon.js及使用示例詳解

    Three.js引入Cannon.js及使用示例詳解

    這篇文章主要為大家介紹了Three.js引入Cannon.js及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Typescript?extends?關(guān)鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析

    Typescript?extends?關(guān)鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析

    這篇文章主要介紹了Typescript?extends?關(guān)鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • typescript?type類型使用梳理總結(jié)

    typescript?type類型使用梳理總結(jié)

    這篇文章主要為大家介紹了typescript?type類型使用梳理總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評論