1

在一个打字稿(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"
    ]
  }
}

我不明白为什么我的声明文件无法识别。

你有什么主意吗 ?

谢谢 :)

4

1 回答 1

0

您需要在以下路径之一中添加声明文件:

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

  2. 'my-private-repo/dist/package.json'(并指定一个“类型”属性)

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

阅读有关 typescript 如何加载模块的信息:https ://www.typescriptlang.org/docs/handbook/module-resolution.html

于 2020-04-16T12:16:25.750 回答