我正在创建一些与模块接口的代码,并且具有几种类型,这些类型比模块所允许的更具体,但是仍然与模块指定的类型完全兼容。
但是,尽管有兼容性,但还是出现此错误:
Types of property 'data' are incompatible. Type 'IDataPoint[]' is not assignable to type 'number[] | { x: any; y: any; }[] | [number, number][] | [number, number[]][]'. Type 'IDataPoint[]' is not assignable to type 'number[]'. Type 'IDataPoint' is not assignable to type 'number'. Type '[number, number]' is not assignable to type 'number'.ts(2322)
这里值得注意的是,即使Type '[number, number]' is not assignable to type 'number'
在原始允许类型列表中,最后一行还是显示“ [number, number]
”。为什么只将它与第一个选项进行比较并放弃呢?在没有将值强制转换为正确的类型的情况下,有什么方法可以使它起作用?