我一直在看@types\
npm套餐很长一段时间。我正在使用它们,但我并不清楚它们究竟代表什么。
我知道这些库的主要目的是定义类型/类/接口......让它们准备好将它们用于打字稿项目。
目前,我打算在前端提供条带功能。有两个npm库:
我正在开发一个angular2 +打字稿项目,我遇到了不同的问题:
typings
工具以便安装我不知道是什么。这是什么工具?修改
到目前为止,根据this guide:
npm install stripe --save
npm install @types/stripe --save-dev
我已将此添加到webpack.common.js
:
new webpack.ProvidePlugin({
Stripe: 'stripe'
})
然后,在我的打字稿组件中,我添加了这个:
import * as Stripe from '@types/stripe';
然而我收到了这个错误:
[ts]文件'... / node_modules/@types/stripe/index.d.ts'不是模块。
我也试过了:
import stripePackage from 'stripe';
但是我得到了同样的信息:
[ts] File '.../node_modules/@types/stripe/index.d.ts' is not a module.
答案 0 :(得分:1)
要点是,如果你导入用普通JS编写的库foo
,TypeScript就无法推断任何类型。 foo
展示的所有内容都将为any
类型。
这就是你必须npm install @types/foo
的原因。每当您从foo
导入内容时,TypeScript都会将@types/foo
的API与foo
相关联。 @types
是TypeScript在JS和TS之间进行互操作的方式。
从2.0开始,不推荐使用typings
。您可以在此处详细了解:https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/