#typescript
#typescript
Вопрос:
Я должен работать с кодом, который представляет повторяющуюся ситуацию, подобную следующему примеру:
const orders: Order[] = await this.getOrders()
const parsedOrders = orders.map(order => {
// @ts-ignore --> how to remove this line without getting errors
order.linesLength = order.lines.length
return order
})
Я хотел бы удалить указанный комментарий и позволить TypeScript выполнять свою работу без ошибок. Но я не уверен, какую технику реализовать в этих ситуациях, когда у меня есть тип, к которому мне нужно добавить какое-то свойство, которого в нем нет.
Комментарии:
1.
parsedOrders
не определено,forEach
ничего не возвращает; почему бы не использоватьorders.map
вместоorders
изменения?2. @jonrsharpe моя ошибка! Я редактирую свой пост. В любом случае,
orders.map
вызовите такое же поведение3. Почему бы вам не создать новый объект вместо изменения старого?
Ответ №1:
Вы можете создать интерфейс, который расширяется Order
с помощью дополнительных свойств:
interface ParsedOrder extends Order {
linesLength: number
}
const parsedOrders: ParsedOrder[] = orders.map((order) => {
return {
...order,
linesLength: order.lines.length
}
})