Я создаю некоторый код, который взаимодействует с модулем и имеет несколько типов, которые являются более конкретными, чем позволяет модуль, но все еще полностью совместимы с типами, указанными модулем.
Однако, несмотря на совместимостьЯ получаю эту ошибку:
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]
находится в исходном спискедопустимых типов.Почему просто сравнивать с первым вариантом и сдаваться?Есть ли способ заставить это работать без приведения значения к нужному типу?