我试图让this Node.js TypeScript定义工作,但是WebStorm给了我一个大错误列表,其中包含所有相同的消息:
保留字'this'用作名称。这次检查 报告使用JavaScript保留字作为名称的任何用法。 JavaScript规范保留了许多单词 目前尚未用作JavaScript关键字。用这些词作为 如果更高版本的JavaScript,标识符可能会导致代码损坏 将它们用作关键词。
由于返回类型而发生此错误的示例代码:
为什么this
关键字不能成为某种类型?我可能使用旧的TypeScript编译器,还是输入错误?
修改
为了摆脱错误,我刚刚用包含类或接口的类型替换了所有这些this
类型。例如,给定示例中的错误通过将其更改为:
export interface EventEmitter {
addListener(event: string, listener: Function): EventEmitter;
...
}
虽然这不是解决实际问题的方法。
答案 0 :(得分:3)
我是否可能使用旧的TypeScript编译器......?
是的,升级到至少TS 1.7以获得polymorphic this支持。
答案 1 :(得分:2)
似乎您使用旧版本的WebStorm。 WebStorm从v11.0.3开始支持'this'类型。
答案 2 :(得分:1)
以下代码在typescript playground中编译得很好:
export interface E
{
b(): this;
}
class A implements E
{
public b(): any
{
return 123;
}
}
let a = new A();
console.log(a.b());
根据link'这个'将被解释为'任何'。 所以很可能会有webstorm的东西。