【发布时间】:2019-07-25 07:13:15
【问题描述】:
class A {
method : this = () => this;
}
我要的是this,作为返回类型,表示当前类,即A的子类a。所以,方法只返回与类相同类型的值(不仅仅是基类A)。
我想我有类似的东西:
class A {
method : <T extends A> () => T = () => this;
}
但这似乎是多余的。我复制了A。当然有更好的方法来做到这一点?..
【问题讨论】:
-
为什么
this会返回A的子类;根据定义,this代表执行上下文——在上面的代码的情况下,即 A。在第二个示例中,执行上下文仍然是 A,所以返回this将返回 A。请考虑阅读以下内容:@ 987654321@ -
@RandyCasburn 使用
this只是一个示例,以轻松说明我正在尝试做的事情。当然this不代表一个类。 -
正如我在下面对 artem 提到的,我认为您将 JavaScript 的运行时特性与 TypeScript 的静态类型检查特性混淆了。但我意识到我一定误解了你的问题。
-
@RandyCasburn 实际上我只是很愚蠢。
this就像我想要的那样作为一种类型工作。但是,我将methods类型设置为this,而不是 返回this的函数。
标签: javascript typescript types typescript-typings typescript-generics