Как экспортировать типы в модуле TypeScript npm - PullRequest
0 голосов
/ 16 марта 2020

В TypeScript, скажем, я хочу, чтобы пользователь использовал «внутренние» типы моего модуля, чтобы они могли правильно вводить свои собственные переменные при использовании моего модуля - нужно ли просто экспортировать буквально все из файла index.ts в результат sh this?

// index.ts

export * from './file1' // uses types/interfaces defined in file1types
export * from './file2' // uses types/interfaces defined in file2types
export * from './types/file1types'
export * from './types/file2types'

Я пытался читать файлы объявлений TypeScript, но информация об этом невероятно фрагментирована. Помогают ли мне файлы .d.ts выполнить sh или они предназначены только для проектов, не относящихся к TS? Помогает ли tsconfig.json опция declaration: true выполнить 1018 *, генерируя .d.ts для каждого файла TS? Является ли это альтернативой экспорту всего из одного файла index.ts?

И если declaration: true поможет мне в этом sh, как пользователь будет использовать все эти сгенерированные .d.ts файлы в build папка?

Буду очень признателен за разъяснения относительно того, как обычно экспортируются типы в проектах TS. Заранее спасибо.

1 Ответ

0 голосов
/ 17 марта 2020

Без файлов объявлений вы можете разработать пакет в TypeScript, скомпилировать его и предоставить другим пользователям в виде JavaScript кода. Включение их также позволяет разработчикам TypeScript использовать пакет с любыми определенными вами типами. Они могут получать больше информации о типах во время работы с вашей библиотекой, например, требуемые типы аргументов, типы возвращаемых функций и т. Д. c, а также предупреждения от их IDE / Intellisense при возникновении конфликтов.

* declaration: true в файле tsconfig.json указывает компилятору TypeScript выводить файлы объявлений (.d.ts). Часто они объединяются в один файл, например index.d.ts, и затем в файл package.json библиотеки добавляется поле "types": path/to/index.d.ts, чтобы сообщить TypeScript, где искать типы (когда пользователь импортирует пакет).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...