Typescript не подхватывается определение типа
Репозитарий с кодом:
https://github.com/Ulibka68/pk1
Для стороннего пакета на JS необходимо написать определение типа.
Решил потренироваться на примере пакета console-ui:
https://github.com/ember-cli/console-ui#readme
console-ui сделан полностью на js
К нему также есть файл - определение типов он находится в пакете npm @types/console-ui
Если поставить пакет @types/console-ui то строка
const ui = new UI(...
становится типизированной (в том смысле что WebStorm показывает подсказку по параметрам)
Для начала я скопировал определение типа создав файл
types/console-ui/index.d.ts
Содержимое которого полностью скопировал из пакета @types/console-ui
В tsconfig.json добавил: "typeRoots": ["./node_modules/@types", "./types","types"],
По непонятной причине определения типов не подхватились и тестовый файл
src/cons.ts
остается не типизированным
Поскажите пожалуйста что надо сделать чтобы UI получило тип из моего файла определения типов
Ответы (1 шт):
В ветке v2 поместил работающую версию типизации:
https://github.com/Ulibka68/pk1/blob/v2/types/console-ui/index.d.ts
Какие внес изменения:
удалил export = UI;
Документация:
https://www.typescriptlang.org/docs/handbook/modules.html#export--and-import--require
говорит что это старая(imho) версия CommonJS когда экспортируется одна переменная (UI)
В стандартном случае переменные module и exports обеспечивают экспорт модуля CommonJS - но в данном случае экспортировалась переменная UI
В рабочей версии в d.ts файле я записал:
declare module 'console-ui' {
export class UI {}
}
После этого включилась проверка типизации параметров функций класса UI