Файл декларации TypeScript не читается, пока его папка находится в typeRoots

В проекте машинописного текста (Angular 9) я пытаюсь импортировать частную библиотеку JS.

Когда я импортирую его с import { myMethod } from 'my-private-repo/dist/util'; Я получаю следующую ошибку:

Could not find a declaration file for module 'my-private-repo/dist@types/util'. 'my-private-repo/dist/util.js' implicitly has an 'any' type.
  Try `npm install @types/my-private-repo` if it exists or add a new declaration (.d.ts) file containing `declare module 'my-private-repo/dist/util';`

Я попытался исправить проблему, добавив файл декларации в typings папка со следующим содержимым: declare module "my-private-repo/dist/util";или даже с declare module "*"; но ошибка не меняется, например, мой файл объявления вообще не читается, пока я изменил свою конфигурацию ts, чтобы включить ее:

{
  ...
  "compilerOptions": {
    ...
    "noImplicitAny": true,
    ...
    "typeRoots": [
      "./typings",
      "./node_modules/@types"
    ]
  }
}

Я не понимаю, почему мой файл декларации не распознается.

Есть ли у вас какие-либо идеи?

Спасибо:)

1 ответ

Вам нужно добавить файл декларации по одному из этих путей:

  1. 'my-private-repo/dist/util.d.ts'

  2. 'my-private-repo/dist/package.json' (и укажите свойство "типы")

  3. 'my-private-repo/dist/@types/util.d.ts'

прочтите о модуле загрузки машинописного текста: https://www.typescriptlang.org/docs/handbook/module-resolution.html

Другие вопросы по тегам