1
我在打字稿这个非常简单的代码:Typescript:为什么Array <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];
}
}
}
在具体的类,当我分配到someThing
[4, 2, 2]
,打字稿抱怨Type number[] is not assignable to type [number, number, number]
。为什么会这样,我怎么才能确保someThing
是一个只有3个数字的数组?
是的,谢谢!必须明确地声明这特别奇怪。我想知道是否有任何具体原因。不过谢谢! – naiveai
在没有注释的情况下,必须推断返回。不幸的是,它是根据函数的主体(而不是基类)推断的,因此你会得到未来的错误。 – basarat
哦。这应该被认为是一个错误?我应该提交问题吗? – naiveai