1 回答

TA貢獻1803條經驗 獲得超3個贊
代表什么
<B>
?它代表什么,類型?如果是這樣,它是什么類型?
這是一個類型參數,也稱為泛型。
在 C# 和 Java 等語言中,用于創建可重用組件的工具箱中的主要工具之一是泛型,也就是說,能夠創建一個可以處理多種類型而不是單一類型的組件。這允許用戶使用這些組件并使用他們自己的類型。
每當調用一個函數或創建一個實例時,如果該函數或類是通用的,您可以將類型參數“傳遞”給它,類似于將參數傳遞給函數或構造函數的方式。(不同之處在于類型參數是一個type,在發出的 JS 中不存在——它只是用來幫助 TS 類型檢查)。
如果是這樣,它是什么類型?
它是調用構造函數參數的任何類型。
const?m?=?new?MyClass(3);
將導致
constructor(value:?B)
其中value
is?3
,告訴 TypeScript 結果實例是 a?MyClass<number>
- 換句話說,它的value
屬性包含 a?number
, a?B
。
this is MyClass<B>
里面有什么isMyClass(): this is MyClass<B>
?它被評估為真還是假?為什么不把它放在函數本身里面呢,像這樣:
這
isMyClass():?this?is?MyClass<B>?{
是類型守衛。如果該方法返回true
,它會告訴 TypeScript 該實例的類型MyClass<B>
。
雖然你可以這樣做:
?isMyClass() {
? ? if (this instanceof MyClass) {
? ? ? return true;
? ? }
? ? else {
? ? ? return false;
? ? }? ??
? }
這將不允許 TypeScript 理解在isMyClass調用時類型已經縮??;它只會返回一個布爾值。相反,使用is將返回一個布爾值并提供有關調用內容的 TypeScript 類型信息。
添加回答
舉報