

typescript では、 javascript では許可されない記述方法がいくつか可能です。その中には、例えば以下に示すような arrow
関数を用いたメソッド定義があります。

[code]

    class Foo {
      sayThis = () => console.log(this);
    }
    
    const foo = new Foo();
    const sayThisFunction = foo.sayThis;
    sayThisFunction();  // => Foo { sayThis: [Function] }
    
[/code]

このように arrow としてクラスに定義された関数は、メソッドのような振る舞いをしていて、一方、 this
はどのように呼び出しても、そのメソッドが所属しているオブジェクトに対して解決されているような振る舞いです。

これは、一見、どのようなコードに最終的に落ちているのかが、あまり自明ではないな、と思いました。

### 質問

  * 上記のように、アロー関数でメソッドを typescript にて定義したとき、それと同等のことを実現する javascript コードはどのようなものになりますか？


CC BY-SA 4.0
2019-10-20T03:37:50.890
59819
2019-10-20T03:37:50.890
754
question
javascript node.js typescript
typescript でアローによって定義されたメソッドはどうトランスパイルされますか？