Проблема
Пакет уже поставляет index.d.ts, и в package.json есть "types": "./index.d.ts" — но при наличии "exports" современный TypeScript (moduleResolution: bundler / node16 / nodenext) резолвит типы только через условие types внутри exports и игнорирует верхнеуровневое поле types.
Сейчас в exports["."] только import/require:
"exports": {
".": {
"import": "./dist/vue-select.js",
"require": "./dist/vue-select.umd.cjs"
},
"./style.css": "./dist/vue-select.css"
}
Поэтому типы не находятся — редактор выдаёт TS7016, и потребителям приходится держать declare module "@ttbooking/vue-select"; (тип any), теряя реальный API (SelectOption, VueSelectProps и т.д.), хотя декларации в пакете лежат.
Просьба
Добавить условие types первым в exports["."]:
"exports": {
".": {
"types": "./index.d.ts",
"import": "./dist/vue-select.js",
"require": "./dist/vue-select.umd.cjs"
},
"./style.css": "./dist/vue-select.css"
}
(types обязательно первым условием — TS берёт первое подходящее.) Патч-релиз; менять код не нужно, только package.json.
После этого потребители смогут убрать локальный shim и получить настоящие типы.
Затрагивает 1.0.7 (последняя на момент issue).
Проблема
Пакет уже поставляет
index.d.ts, и вpackage.jsonесть"types": "./index.d.ts"— но при наличии"exports"современный TypeScript (moduleResolution: bundler/node16/nodenext) резолвит типы только через условиеtypesвнутриexportsи игнорирует верхнеуровневое полеtypes.Сейчас в
exports["."]толькоimport/require:Поэтому типы не находятся — редактор выдаёт TS7016, и потребителям приходится держать
declare module "@ttbooking/vue-select";(типany), теряя реальный API (SelectOption,VueSelectPropsи т.д.), хотя декларации в пакете лежат.Просьба
Добавить условие
typesпервым вexports["."]:(
typesобязательно первым условием — TS берёт первое подходящее.) Патч-релиз; менять код не нужно, толькоpackage.json.После этого потребители смогут убрать локальный shim и получить настоящие типы.
Затрагивает 1.0.7 (последняя на момент issue).