typescript: как показать map, что надо возвращать данные конкретного типа
есть интерфейс:
export interface IData {
name : string,
place? : number
}
требуется получить массив таких данных из массива других данных с помощью метода map
если делать так:
const data: IData[] = arr.map((elem: IElem) => ({
name: elem.name,
place: elem.place
}));
то будет ошибка:
Type '{ name: string; place: number | undefined; }[]' is not assignable to type 'IData[]'.
Как корректно от нее избавиться?
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
Такая ошибка может быть только при включенной опции exactOptionalPropertyTypes - отсутствие поля требует именно отсутствие, а не поле undefined, поэтому если указанный тип явно его не допускает, то нельзя.
Исправляется явным указанием undefined в типе: playground
export interface IData {
name : string,
place? : number | undefined,
}