1 回答

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