必要創出という名前の変数_thisに反す。
-
13-12-2019 - |
質問
これは非常にしたり、逆に、もしようかを作成して変数 _this
どこかクラスの機能です。
class Person {
constructor (public name : string) {}
changeName(name) {
var _this = {};
(() => {
this.name = name;
})();
}
}
このことは想定どおりに動作した場合の changeName
ニーズが高まったことから、当該部分のコンパイルされたコードは以下のようなものです:
var _this = this;
var _this = {};
(function () {
_this.name = name;
})();
それはJavascript:い var
宣言書き換えます。の _this
作成したコンパイラによって上書きによっ _this
.
調査を実施しているのは、同じ、この動作にな指定稿仕様
なければならない。できないのコンパイラを検出している場合は作成した変数名 _this
氏名を自動生成につなように、 _this2
テーマ変数をコンパイラ生成のものから踏みつけますか?
解決
コンパイラは、Lambdaの構文を使用して作成されるクロージャを容易にするために、_this
への参照としてthis
を自動的に作成します。私はこれをどこかでTypesscript仕様で読むことを確信していますが、この場合、コンパイラはエラーを発行することに同意します。
私は、「慣用句」(したがって予測可能な)JavaScriptを生成するという述べられた目標と矛盾するので、コンパイラの考えがJavaScriptを発行するのを変えません。
他のヒント
予約された変数を呼び出すのはそれほど違いますか?私はあなたが「この」または「文書」と呼ばれる変数を宣言しないと思います。
予約された変数が何であるかに関してMSがクリアな限り、大きな問題があるとは思わない。彼らはおそらくコンパイラを出力することができますが、警告を出力することができます。
所属していません StackOverflow