我需要将条带导入我的应用程序
首先我安装了条纹npm包
npm install stripe --save
Stripe文档说在连接api之前应该设置密钥。
在Node中它喜欢这个
var stripe = require('stripe')(' your stripe API key ');
我需要将其转换为typescript
我尝试了以下方式。但它对我不起作用
import * as stripe from 'stripe';
stripe('sk_test_...')
如果有人可以帮助我解决这个问题,那么我将毫不拖延地继续我的项目。
谢谢
答案 0 :(得分:15)
您可以参考: https://github.com/stripe/stripe-node
import Stripe from 'stripe';
const stripe = new Stripe('sk_test_...', {
apiVersion: '2020-03-02',
});
const createCustomer = async () => {
const params: Stripe.CustomerCreateParams = {
description: 'test customer',
};
const customer: Stripe.Customer = await stripe.customers.create(params);
console.log(customer.id);
};
createCustomer();
答案 1 :(得分:12)
正如britzkopf所说,条纹尚未提供自己的定义(可能永远不会),但您可以使用@types/stripe中的类型定义。
npm install stripe @types/stripe
然后按如下方式导入和构造Stripe
类。
import * as Stripe from 'stripe';
const stripe = new Stripe('xxx_xxx_xxx');
如果你因为某种原因需要更细粒度的导入,你可以使用这种(有些hacky)方法。
import { resources } from 'stripe';
const stripeData = require('stripe')('xxx_xxx_xxx');
const customers = new resources.Customers(stripeData, null);
答案 2 :(得分:11)
从8.0.1版开始,软件包具有自己的类型,因此无需安装其他类型。就像这样导入它:
从“条带”导入条带;
答案 3 :(得分:4)
这是一个feature request。去另外竖起大拇指。
答案 4 :(得分:2)
我遇到了同样的问题,所提供的解决方案对我不起作用:
import * as Stripe from 'stripe';
const stripe = new Stripe('xxx_xxx_xxx');
使用这种方法,我得到了这个错误
[ts]无法将'new'用于其类型缺少调用或 构建签名。 stripe.ts(1,1):类型源自此导入。 不能调用或构造命名空间样式的导入,它将 在运行时导致失败。考虑使用默认导入或导入 要求在这里代替。 (别名)类Stripe(别名)名称空间Stripe 导入条纹
我在"allowSyntheticDefaultImports": true
中使用tsconfig.json
使用此编译选项,以下内容在TypeScript中有效:
import Stripe from "stripe";
const secret = process.env.STRIPE_SECRET!;
export const stripe = new Stripe(secret);