2016-10-27 3 views

答えて

4

あり6月2日2015年から、この程度の問題(Recursive functions are inferred to have return type anyが)だ、とそれは言う「デザインによって」として閉じられました:

私たちは、簡単に、これはすべての 、理論的に仕事ができる方法を概説スペックを持っていました実装には至らなかった。
の戻り値の型解決中に自分自身を見る関数はanyであるという規則があります。必要な型注釈 を追加することが常に可能だとほとんどの機能がないESの仕様の一部ではまだ

このため、末尾呼び出しに 最適化のように再帰的ではありませんので、これは、 実際には十分であると思われます

let sum = 
    ([head, ...tail]: number[]): number => head ? head + sum(tail) : 0 

let x: string = sum([1, 2, 3]); // Error: Type 'number' is not assignable to type 'string' 

code in playground

:だから、基本的には、単に戻り値の型を宣言
関連する問題