2016-12-13 3 views
2

現在、私はTypeScriptを学んでいます。私はキーワード機能と=>(太い矢印)の違いについてはかなり混乱しています。脂肪の矢印は、キーワードの機能と同じように動作しないようですTypeScriptのfunctionと=>の違いは何ですか?

interface Counter { 
    (start: number); 
    interval: number; 
    reset() : void; 
} 

let a = <Counter>function(start: number) { }; 
let b = <Counter>(start: number) => { }; 

a.reset(); //OK 
b.reset(); //error: Property 'reset' does not exist on type <Counter>(start: number) => void 

:以下のコードを参照してください。

+0

これはTypeScriptとは関係ありません。純粋にJS(ES6)の問題です。この違いは、数百のブログ記事、ドキュメントページ、そして今ここの質問でよく説明されています。 –

+0

@ザーラザブロそれを得ました。どうもありがとう。 – user3496167

答えて

3

fat arrow関数は、関数式より構文が短く、この値を字句的にバインドします。矢印機能は常に匿名で、効果的にfunction (arguments) { return expression; }(arguments) => expressionに変えます。矢印の後の式を使用する場合、戻り値は暗黙的なので、戻り値は必要ありません。

+1

「太い矢印機能」という用語は時代遅れです。正しい用語は「矢印機能」です。 –

関連する問題