【发布时间】:2019-07-12 04:44:57
【问题描述】:
我已经安装了@types/stripe-v3 并将Stripe 的javascript 文件包含在index.html 的脚本标记中。假设 Angular 编译器应该自动包含来自 @types 节点模块的所有文件。在互联网上阅读并查看@types/stripe-v3/index.d.ts,如果编译器包含该文件,则应该全局声明一个 var Stripe。来自index.d.ts
declare var Stripe: stripe.StripeStatic;
在我的服务文件中,我有以下代码:
import { Injectable } from '@angular/core';
import { environment } from '../environments/environment';
@Injectable({
providedIn: 'root'
})
export class BetalingService {
stripe = Stripe(environment.stripeKey);
constructor() { }
}
导致以下错误:
error TS2304: Cannot find name 'Stripe'.
【问题讨论】:
-
为Stripe定义import语句怎么样?
-
如果你尝试像
import { Stripe } from 'stripe-v3';这样的导入语句,你会得到错误'stripe-v3 is not a module',因为 index.d.ts 文件确实没有声明模块,这意味着在编译器包含时声明此全局变量 Stripe -
yarn add @types/stripe-v3 --save
标签: typescript angular-cli stripe-payments definitelytyped angular-cli-v7