В следующем примере кода TypeScript выдает ошибку Argument of type 'string' is not assignable to parameter of type 'Item'. ts(2345)
.
type Item = 'foo' | 'bar' | 'baz'
const isInArray = (str: string) => {
const arr: Item[] = ['foo', 'bar', 'baz']
return arr.includes(str)
^^^
}
Я понимаю, что мог бы удалить тип Item[]
из arr
, который превратил бы его в string[]
и предотвратить ошибку, однако, в реальной жизни, где я столкнулся с этим, массив является результатом сопоставления некоторого массива объектов, который набирается, в результате чего массив соответствующим образом набирается.
Я чувствую как это должно работать, так как мы заранее знаем, каковы значения массива, но не обязательно, что является входным аргументом.
Я предполагаю, что что-то упустил. Почему происходит эта ошибка и как я могу ее устранить?