#typescript
#машинописный текст
Вопрос:
Я могу добавлять типы в импортируемый пакет, добавляя файл декларации в корневой каталог проекта, который выполняет импорт:
index.d.ts declare module "@org/client" { export = client; ... }
Это работает. Но мне нужно будет сделать это во всех проектах, которые импортируют модуль.
Могу ли я каким-то образом поместить эту информацию в импортируемый пакет? Я попытался поместить index.d.ts
их в импортированный пакет вместо импортируемого проекта, но типы не подбираются, когда я это делаю.
Комментарии:
1. Я думаю, что вы должны определить
lt;some-pathgt;/lt;some-namegt;.d.ts
файл отдельно от каждогоlt;some-pathgt;/lt;some-namegt;.js
файла2. @GuerricP спасибо, это было решение!
Ответ №1:
Является ли импортируемый вами пакет общедоступным пакетом, в котором отсутствуют типы? Если это так, то лучший подход-внести свой вклад в эти типы DefinitelyTyped
, чтобы все сообщество могло извлечь из этого выгоду. Поскольку ваш вопрос сформулирован с упоминанием «без регистрации @types
«, я не уверен, что вы явно НЕ хотите этого делать по какой-то причине? Если да, то почему?
Если у вас есть несколько проектов, использующих модуль, в котором отсутствуют типы, и вам нужны эти типы во всех местах — и по какой — то причине вы не хотите добавлять типы-единственные другие способы, которые я могу придумать, которые не включают вставку одного и того же объявления типа в каждый отдельный проект, — это 1) сделать запрос на извлечение в библиотеку, чтобы добавить типы изначально в нее или 2) разветвить библиотеку и добавить необходимые файлы .d.ts непосредственно в нее. Каждый из этих подходов также требует, чтобы вы указывали "types"
директиву на package.json
соответствующий .d.ts
файл(ы).
Комментарии:
1. Это частный пакет
2. Тогда почему бы просто не добавить типы непосредственно в него?