2016-04-14 4 views
12

Я хотел бы знать, какой рекомендуемый способ - организовать определения интерфейсов в машинописном тексте. В моем проекте у меня много разных классов. Каждый класс может иметь интерфейс конфигурации. В настоящее время я собрал все эти определения интерфейсов в один файл Interfaces.ts и ссылаюсь на файл из разных мест.Как организовать интерфейсы TypeScript

Есть ли лучший способ?

Пример: https://github.com/blendsdk/blendjs/blob/devel/blend/src/common/Interfaces.ts

+3

Пока не существует что-то вроде StyleCop для машинописи, аргумент для «личных предпочтений», вероятно, применять (до тех пор, как ваш код компилируется). Мое личное предпочтение состоит в том, чтобы разделить все на свой собственный файл, то есть интерфейс IValidatable будет жить в IValidatable.ts - Да, в конечном итоге у вас много файлов, но с течением времени оно должно помочь в ремонтопригодности. – series0ne

ответ

12

Есть ли лучший способ

Команда машинопись использует файл с именем types.ts: https://github.com/Microsoft/TypeScript/blob/master/src/compiler/types.ts

я сделать то же самое в моем проекте, например, http://alm.tools: https://github.com/alm-tools/alm/blob/master/src/common/types.ts

+2

Спасибо, это было действительно полезно! Интересно, вы помещаете определения типов из 'types.ts' в глобальное пространство имен или ссылаетесь на' types.ts' из каждого файла, который использует его типы? – Rotareti

2

Мне нравится структурировать свои приложения, как это:

|-- app 
    |-- components 
    |-- directives 
    |-- services 
    |-- interfaces 
     |-- <feature/component name> 
      |-- <interface name>.interface.ts