使用节点js + typescript导入条带

时间:2017-02-02 09:53:15

标签: node.js typescript stripe-payments

我需要将条带导入我的应用程序

首先我安装了条纹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_...')

如果有人可以帮助我解决这个问题,那么我将毫不拖延地继续我的项目。

谢谢

5 个答案:

答案 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);