質問

これは非常にしたり、逆に、もしようかを作成して変数 _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がクリアな限り、大きな問題があるとは思わない。彼らはおそらくコンパイラを出力することができますが、警告を出力することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top