首页 > 解决方案 > Angular 7无法包含自定义打字稿定义文件

问题描述

我创建了一个自定义打字稿定义文件(brat.d.ts)

export declare class head {
   ready(callback: () => any);
}

export declare class Util {
   static embed(divId: string, collData: any, docData: any, webFontsURLs: Array<string>);
}

我正在像这样在 Angular 7 组件中导入上述定义文件

import {head, Util} from "../../brat/brat";

当我服务时,我收到以下错误

'./src/app/folder-mgmt/list-documents/list-documents.component.ts 中的错误 模块未找到:错误:无法解析'\src\ 中的'../../brat/brat' app\folder-mgmt\list-documents'`

谁能建议我做错了什么

标签: angulartypescripttypesangular7

解决方案


您在 .d.ts 文件中添加声明,它们将在您的项目中全局可用。但是您tsconfig.json首先需要通过添加以下内容进行调整:

"files": [
  "additional.d.ts"
]

现在创建一个./addition.d.ts文件(相对于你的 TypeScript 项目根目录)并在那里添加你的类型。不要export符号,只声明类型。

declare class head {
   ready(callback: () => any);
}

declare class Util {
   static embed(divId: string, collData: any, docData: any, webFontsURLs: Array<string>);
}

您现在可以在全球范围内使用它们。

如果您不希望它们在全局范围内可用,而是为缺少它们的模块添加类型,请在模块中声明它们。

declare 'module-name' {
  // ...
}

现在 TypeScript 会在你这样做时识别它们import { ... } from 'module-name'


推荐阅读