Array.reduceが一度も回らないとcallbackが無いのでaccumulatorはneverになる
配列の型に[]の空配列を想定していると一度も回らないのでaccumulatorの戻り値無しでnever型になる。
空が想定される場合はそもそも回す処理まで到達出来ないようにしてあげよう。
// const orderArray: string[]|[] = this.orderArray
// ↓
const orderArray: string[] = this.orderArray
arrFunc () {
return orderArray.reduce((accumulator, id) => {
const item: ItemDocument|undefined = items.find(item => item.id === id)
if (item) { accumulator.push(item) }
return accumulator
}, [])
}
対策
- 型の[]がArray系関数に到達しない処理にする
- Arrayを型キャストする
const orderArray = this.orderArray as string[]
arrFunc () {
return orderArray.reduce((accumulator, id) => {
const item: ItemDocument|undefined = items.find(item => item.id === id)
if (item) { accumulator.push(item) }
return accumulator
}, [])
}