@Dolerum

Как типизировать этот объект?

Здравствуйте, есть такой фильтер
books: state.books.filter((book: object) => book.id !== id)

books - это массив, а book - это объект.
Когда я задаю book тип object, то получаю ошибку
Свойство "id" не существует в типе "object".ts(2339)

Как типизировать book без any?
  • Вопрос задан
  • 488 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Как есть, так и типизируй.

Как минимум:
state.books.filter((book: { id: string }) => book.id !== id)
А лучше:
interface Book {
  id: string;
  // ...
}
state.books.filter((book: Book) => book.id !== id)
А ещё лучше:
interface Book {
  id: string;
  // ...
}
interface State {
  books: Book[];
  // ...
}
const state: State = ...

state.books.filter(book => book.id !== id)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы