@lil_web

Как перестать загрязнять код импортом интерфейсов?

Я пишу веб-приложение на Реакте, используя Тайпскрипт.

Описываю пропсы функционального компонента с помощью интерфейса. Этот интерфейс нужен в других компонентах или хелперах, поэтому приходится его экспортировать и импортировать — засорять код.

Во Флоу я просто писал declare type, и тип был доступен во всём проекте. Как сделать так же в Тайпскрипте?
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 3
@abberati
frontend-разработчик
Глобальные переменные — это плохо. Плохо вы делали в флоу. Но можете так же делать в тс https://www.typescriptlang.org/docs/handbook/decla...
Ответ написан
Wondermarin
@Wondermarin
Вы можете, в директории со всеми вашими интерфейсами, создать index.ts с таким кодом:

export { interface1 } from './interface1'
export { interface2 } from './interface2'
...


А далее в коде компонента импортировать интерфейсы таким методом:

import * as interfaces from '../interfaces'
...
interfaces.interface1
interfaces.interface2


Таким образом вы "загрязняете" импорт только одной строкой и не используете глобальные переменные, как говорил abberati
Ответ написан
Aetae
@Aetae
Тлен
Можно просто положить где-то(во включённой в tsconfig.json) директории какой-нить global.d.ts и просто накидать туда часто используемых интерфейсов. )
Но, конечно, если интерфейсы связанны с какими-то модулями, правильно и хранить их в соответствующих модулях. Всё равно же используя модуль, вы оный импортируете, добавка к импорту ещё и интерфейса погоды не делает.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы