如何在 Angular 2 中包含打字稿自定义类型定义?

Posted

技术标签:

【中文标题】如何在 Angular 2 中包含打字稿自定义类型定义?【英文标题】:How to include typescript custom type definitions in angular 2? 【发布时间】:2016-11-12 04:57:04 【问题描述】:

我不明白自定义类型定义文件是如何包含在打字稿应用程序中的。例如,this application 具有包含自定义类型定义的 src/custom-typings.d.ts 文件。这个文件是如何包含的?

我尝试重命名此文件,但它仍然包含在内。文件扩展名可以是*.ts(不仅是*.d.ts)。 webpack 是否在项目中的每个 *.ts 文件中搜索类型定义?如果是这样,那么如何改变这种行为?如何告诉 webpack 在特定文件中搜索类型定义?

【问题讨论】:

【参考方案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 文件

希望我能解释一下,对你有帮助!

【讨论】:

以上是关于如何在 Angular 2 中包含打字稿自定义类型定义?的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 2 中使用 React,错误类型错误:无法读取未定义的属性“渲染”

如何在 .tsx 打字稿中包含 .css 文件?

如何在 Angular 2 应用程序中包含时刻时区

如何在Angular Material Date Picker中包含前导零?

在 Angular 2 + Meteor 应用程序中包含 Google 字体

如何在表单中包含自定义组件?