Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在TypeScript中禁用“this”关键字?_Typescript_Visual Studio Code_Typescript2.0 - Fatal编程技术网

如何在TypeScript中禁用“this”关键字?

如何在TypeScript中禁用“this”关键字?,typescript,visual-studio-code,typescript2.0,Typescript,Visual Studio Code,Typescript2.0,有没有办法在类中禁用this关键字的必要性? 下面是一个简单的例子: class counter { public runCounter() { console.log("testconsole"); vartest = 123; // Gives error :( } public vartest: string; } let cter = new counter(); cter.runCounter(); 这导致错误:[ts]找不

有没有办法在类中禁用this关键字的必要性? 下面是一个简单的例子:

class counter {
    public runCounter() {
        console.log("testconsole");
        vartest = 123; // Gives error :(
    }
    public vartest: string;
}

let cter = new counter();

cter.runCounter();
这导致错误:[ts]找不到名称“vartest”。您是指实例成员“this.vartest”吗

如果没有其他同名变量,是否有方法隐式访问该成员?这在其他语言(如C)中也能正常工作。

不,不太好。对不起

您可以改为执行以下操作:

class counter {
    public runCounter() {
        let _ = this;
        console.log("testconsole");
        _.vartest = 123; // Gives error :(
    }
    public vartest: string;
}
但这让它变得更加晦涩而不是简单——我怀疑它在任何情况下都离你想要的更近

我认为最好的建议是,在写打字稿时,习惯于使用打字稿的常见惯例和最佳实践,而不是试图从其他语言中套用你已经习惯的东西

我知道摆脱那些根深蒂固的习惯可能有点尴尬,但是更容易阅读代码、使用这种语言而不是反对这种语言等的回报将非常值得您的努力