【问题标题】:How to include typescript custom type definitions in angular 2?如何在 Angular 2 中包含打字稿自定义类型定义?
【发布时间】:2016-11-12 04:57:04
【问题描述】:
我不明白自定义类型定义文件是如何包含在打字稿应用程序中的。例如,this application 具有包含自定义类型定义的 src/custom-typings.d.ts 文件。这个文件是如何包含的?
我尝试重命名此文件,但它仍然包含在内。文件扩展名可以是*.ts(不仅是*.d.ts)。 webpack 是否在项目中的每个 *.ts 文件中搜索类型定义?如果是这样,那么如何改变这种行为?如何告诉 webpack 在特定文件中搜索类型定义?
【问题讨论】:
标签:
typescript
angular
webpack
typescript-typings
【解决方案1】:
不要更改此文件的扩展名。只需使用三斜杠符号在此文件中添加自定义定义的引用即可:
/// <reference path="./your-custom-typing.d.ts">
【解决方案2】:
好吧,不是 Webpack 会搜索 *.ts,除非您不使用 ts-loaders。有许多基于 Javascript 的库,例如 lodash,如果您希望在 angular2 项目中使用它们并且您正在使用 typescript 进行开发,那么您必须使用类型。
什么是打字?
read the answer here
如何在您的项目中加载 .d.ts 文件?
例如,如果您使用的是 angular2,那么您必须使用一些依赖项,例如 zone
如果您想将区域添加到您的应用中,您可以简单地做
import "zone.js/dist/zone";
它会查找 d.ts 文件并为您加载。
我像这样加载我的依赖项
import "core-js";
import "zone.js/dist/zone";
import "reflect-metadata";
import "es6-shim";
如果您查看 node_modules/reflect-metadata 它包含 reflect-metadata.d.ts 文件
希望我能解释一下,对你有帮助!