Задать вопрос
CoDeR2006
@CoDeR2006
TS

Как правильно использовать interface в TS + React?

Пишу первый + - крупный проект на TypeScript + React и задался вопросом, неужели что бы использовать interface в state нужно записывать данные как объект:
const [filter, setFilter] = useState<IQuestionsFilter>({ filter: 'New' })

и почему нельзя просто написать:
const [filter, setFilter] = useState<IQuestionsFilter>('New')

вот сам interface:
export interface IQuestionsFilter {
  filter: 'New' | 'Interesting' | 'Not Answer'
}

Ну это все бы ничего если бы не приходилось засорять код такими изменениями:
setFilter({ filter: 'New'})

Согласен, что можно было бы написать так:
const [filter, setFilter] = useState<'New' | 'Interesting' | 'Not Answer'>('New')

Но у меня много, где используются эти данные New' | 'Interesting' | 'Not Answer' именно по этому они и в interface.

Кто может подсказать любую информацию, как это правильно сделать, как делают другие, и тд. Спасибо)
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 1
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
export type IQuestionsFilter = 'New' | 'Interesting' | 'Not Answer'
interface позволяют определять только типы для объектов и функций, type в этом плане более гибкий.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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