Инициализация интерфейса react

#javascript #reactjs #typescript

#javascript #reactjs #typescript

Вопрос:

У меня есть интерфейс:

 export interface Fren {
  name: string;
}
 

и массив строк: frens: string[]
Как преобразовать frens из string[] в Fren[] ?

Моя попытка:

 frens.map(f => ({name: f})
 

Но результатом этой операции является Object[]

Комментарии:

1. вы пытаетесь преобразовать frens ? или вы хотите получить новый объект Fren[]?

2. для меня это не имеет значения

Ответ №1:

Вы можете ввести возвращаемое значение обратного вызова

 frens.map((f): Fren => ({ name: f }))
 

Ответ №2:

Используйте as синтаксис. as Ключевое слово — это утверждение типа в TypeScript, которое сообщает компилятору рассматривать объект как другой тип, отличный от типа, который компилятор определяет как объект.

 const result:Fren[] = frens.map(f => ({name: f} as Fren)
 

Комментарии:

1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более высокого качества и с большей вероятностью привлекут одобрение