私は、次のコードは、エラーが発生しない理由を理解することはできないように見える:TypeScript:void戻り値の型は任意の型に変換されますか?
var rg: {(): void;}[] = [];
rg.push(function():string {return "";})
私は、明らかに私はそこに返す関数をプッシュし、タイプがvoid
を返す関数の配列であることを述べますa ですが、コンパイラは文句を言っていません。 rg
の定義を
var rg: {():number;}[] = [];
コンパイラが文句を言うようになりました。
これはバグですか、またはvoid戻り値の型がどのように働くのでしょうか(つまりvoid
が使用されていて、復帰型any
と基本的に同じになります)。
私は(http://typescript.codeplex.com/workitem/139)[問題を提起]しました:これは許可されていないですので
void
はまだany
と異なること注意。 –