Файл декларации TypeScript не читается, пока его папка находится в typeRoots - PullRequest
1 голос
/ 15 апреля 2020

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

Когда я импортирую его с 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 config, чтобы включить его:

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

Я не понимаю, почему мой файл объявлений не распознается.

У вас есть идеи?

Спасибо:)

1 Ответ

0 голосов
/ 16 апреля 2020

Вам необходимо добавить файл объявления по одному из следующих путей:

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

  2. 'my-private-repo/dist/package.json' (и указать свойство "types")

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

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

...