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

时间:2016-03-18 20:39:27

标签: javascript node.js typescript webstorm keyword

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

  

保留字'this'用作名称。这次检查   报告使用JavaScript保留字作为名称的任何用法。   JavaScript规范保留了许多单词   目前尚未用作JavaScript关键字。用这些词作为   如果更高版本的JavaScript,标识符可能会导致代码损坏   将它们用作关键词。

由于返回类型而发生此错误的示例代码:

Error example

为什么this关键字不能成为某种类型?我可能使用旧的TypeScript编译器,还是输入错误?

修改 为了摆脱错误,我刚刚用包含类或接口的类型替换了所有这些this类型。例如,给定示例中的错误通过将其更改为:

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

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

3 个答案:

答案 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的东西。