TypeScript错误:保留字“this”用作名称

我试图让这个 Node.js的TypeScript定义工作,但WebStorm给了我一个错误的大列表与所有相同的消息:

保留字“this”用作名称。 此检查报告将JavaScript保留字用作名称的任何用途。 JavaScript规范保留了一些当前不用作JavaScript关键字的单词。 如果更高版本的JavaScript将它们用作关键字,那么将这些单词用作标识符可能会导致代码被破坏。

由于返回types而发生此错误的示例代码片段:

错误示例

为什么不能this关键字是一个types? 我是否可能使用旧的TypeScript编译器,或者在input时出错?


编辑:为了摆脱错误,我刚刚用所包含的类或接口的typesreplace了所有这些types。 例如,给定示例中的错误通过将其更改为:

 export interface EventEmitter { addListener(event: string, listener: Function): EventEmitter; ... } 

虽然这不是解决实际问题的办法。

似乎你使用旧版本的WebStorm。 WebStorm从v11.0.3开始支持“this”types。

我可能使用旧的TypeScript编译器…?

是的,升级到至lessTS 1.7以获得多态此支持。

以下代码在打字稿游戏中编译得很好:

 export interface E { b(): this; } class A implements E { public b(): any { return 123; } } let a = new A(); console.log(ab()); 

而根据链接 “这个”将被解释为“任何”。 所以很可能有webstorm的东西。