1
を推測することはできませんか?フローは、私が正しいと信じているcodeのエラーを報告します。なぜ活字体は、私は次のコード例を持つ再帰関数の種類
を推測することはできませんか?フローは、私が正しいと信じているcodeのエラーを報告します。なぜ活字体は、私は次のコード例を持つ再帰関数の種類
あり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'
:だから、基本的には、単に戻り値の型を宣言