如何在打字稿中使用第三方npm模块(Angular2)

时间:2017-03-08 15:33:25

标签: angular webkit

是否有任何文档或分步指南介绍了如何执行此操作?

我想举个例子:我尝试在角度应用中使用包simpl-schema。我创建了一个新的应用程序:

ng new ng-ss-test
cd ng-ss-test
npm install --save simpl-schema

在app.component.ts中我添加了:

let SimpleSchema = require('simpl-schema').default;

现在我收到了错误:

ERROR /app/app.component.ts (2,20): Cannot find name 'require'.)

所以,我已经宣布要求:

declare var require: any

好的,这实际上是有效的。我能写出像

这样的东西
const schema = new SimpleSchema({

但我认为不是这样做的。我还有警告:

WARNING in ./~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
 @ ./~/message-box/dist/MessageBox.js 13:18-39
 @ ./~/simpl-schema/dist/SimpleSchema.js
 @ ./~/simpl-schema/dist/main.js
 @ ./src/app/app.component.ts
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts

当然,我可以通过运行

为simple-schem创建类型信息
dts-gen -m simpl-schema

但我还需要require行,对吗?我想知道在角度中使用第三方npm模块的正确方法是什么。

1 个答案:

答案 0 :(得分:0)

您需要定义打字稿才能使用第三方模块。每个模块都附带一个typescript d.ts文件,该文件定义了您可以在库中使用的方法。但是,这并没有包含任何内容,因此您需要编写自己的d.ts文件或在此处查看DefinitelyTyped'■{/ 3}}

只需将d.ts文件添加到您的项目中,您就可以使用您的库了。