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 шт):

Автор решения: Gayrat Vlasov

В ветке 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

→ Ссылка