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