1
私は活字体で、この非常に単純なコードを持っている:私は[4, 2, 2]
にsomeThing
を割り当てるときに、具体的なクラスでTypescript:なぜ配列<number>は[number、number、number]と同じですか?
type SomeType = [number, number, number]; // Should be an array of exactly 3 numbers
interface IThing {
someThing: SomeType
}
abstract class SomeClass {
abstract getThing(): IThing;
}
class ConcreteClass extends SomeClass {
getThing() {
return {
someThing: [4, 2, 2];
}
}
}
を、活字体は、そのType number[] is not assignable to type [number, number, number]
を文句を言います。これはなぜですか、それ以外の方法でsomeThing
が3つの数字だけの配列であることを保証できますか?
はい、ありがとうございます!これを明示的に宣言しなければならないのは特に奇妙です。何か特別な理由があるのだろうかと思います。とにかくおかげで! – naiveai
注釈がない場合、リターンを推定する必要があります。残念ながら、関数の本体(基本クラスではない)に基づいて推論されるため、将来のエラーが発生します。 – basarat
ああ。これはバグと見なされるべきですか?問題を提出する必要がありますか? – naiveai