angular - 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'`
谁能建议我做错了什么
解决方案
您在 .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'
。
推荐阅读
- vb.net - 使用 Visual Studio 2017 将 Crystal Report 中的位图对象显示为图片框?
- mongodb - 连接 Mongo DB 地图集时面临的问题
- python - 此代码适用于 Windows,但在 Linux 上给出错误“QApplication 未在主线程中创建”,如何解决它,
- ruby-on-rails - Rails,render_async gem:如何在通过 ajax 加载的部分中使用 render_async
- javascript - 未捕获的类型错误:无法在字符串'上创建属性'guid'
- c# - 移动版和桌面版中的身份验证问题
- node.js - Hyperledger Fabric:-来自尝试的对等通信的响应是一个错误:错误:在截止日期之前无法连接
- mysql - #1054 - 未知列内连接和更新顺序
- php - 使用 PHP time() 设置输入类型="datetime-local"
- datadog - datadog is_match 上是否还存在