1
私は活字体で、このコードの例があります。なぜ活字体は、入力引数の型を推測することはありません
function twice(x:number) {
return x*2;
}
function calltwice(y) {
return twice(y);
}
それがコンパイルされ、ノードでの実行がNaNを与えるを。
yのタイプが何であるか疑問に思っていますか?それは数だけ取ることができる2回の関数に渡されるので、数として推測することを期待しました。そして、この予想は、基本的にはF#によって引き起こされた:
まさにそのcalltwiceを知っているlet twice x = x*2
let calltwice y = twice y
はINT->あなたは、引数を指定し、タイプを返すことができ
あなたの呼び出しスタックは 'calltwice'で始まり、' y'引数はanyとして推論されます。 'y(2)(y)'の中では 'y'がany型であるので、呼び出しはエラーを投げません。私はあなたがそれを逆に見ようとしていると思います。あなたはy @ 'function calltwice(y:number)の型を指定するだけです。 – PSL