繁体   English   中英

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

[英]How to use 3rd party npm moduls in typescript (Angular2)

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

我想举一个例子:我尝试在有角度的应用程序中使用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'.)

因此,我声明了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

当然,我可以通过运行为simpl-schem创建类型信息

dts-gen -m simpl-schema

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

您需要定义打字稿才能使用第三方模块。 每个模块都带有一个typescript d.ts文件,该文件定义了可以在库中使用的方法。 但是,此文件不包含在内,因此您需要编写自己的d.ts文件或在此处检查DefinitelyTyped的存储库: https : //github.com/DefinitelyTyped/DefinitelyTyped

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM