Задать вопрос
@SkrrGoogle

Ошибка типа Typescript, как исправить?

Добрый вечер!
Имею интерфейс:
export interface Pokemon { 
id: number 
name: string 
base_experience: number 
height: number 
is_default: boolean 
order: number 
weight: number 
abilities: object[] 
forms: object[] 
game_indices: object[] 
held_items: object[] 
location_area_encounters: string 
moves: object[] 
sprites: object 
species: object 
stats: object[] 
types: object[] 
}


Далее в редьюсере объявляю интерфейс для начального стейта:
interface PokemonState { 
pokemonData: Pokemon; 
isLoading: boolean; 
isError: string; 
}


Ну и собственно, объявляю сам стейт
const initialState: PokemonState = { 
pokemonData: {}, 
isLoading: false, 
isError: "", 
};


Но по итогу получаю ошибку в поле pokemonData:
Type '{}' is missing the following properties from type 'Pokemon': id, name, base_experience, height, and 13 more


Данные в pokemonData приходят с API по мере необходимости.

Помогите, пожалуйста, исправить!

PS интересно то, что если в интерфейсе для pokemonData указать тип Pokemon[], и в начальном стейте в поле написать pokemonData: [], то ошибка пропадет, а с ОБЪЕКТОМ вылетает ошибка

PSS Будет ли являться правильным решением поставить все поля в типе Pokemon необязательными?
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Ahmad66617
@Ahmad66617
Senior Fullstack Engineer
У вас в конце поста ответ - в таком случае сделайте поля необязательными, либо принимайте частично объект через Partial в вашем случае
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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