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 类型信息。
添加回答
举报