🍣
Stripeをnodeとtypescriptで実行するときのエラー
commonjs風に書かれたStripeのサンプルコードをtypescriptで書くときに次のようなエラーがでてきた。
commonjs
const stripe = require('stripe')('api key');
次のように書き換えた。
typescript es module
import Stripe from 'stripe';
const stripe = Stripe('api key', {
apiVersion: '2020-08-27',
})
こんなエラーがでた。
Value of type 'typeof Stripe' is not callable. Did you mean to include 'new'?
結論として次のリンク先に書き方が載ってた。
import Stripe from 'stripe';
const stripe = new Stripe('sk_test_...', {
apiVersion: '2020-08-27',
});
const createCustomer = async () => {
const params: Stripe.CustomerCreateParams = {
description: 'test customer',
};
const customer: Stripe.Customer = await stripe.customers.create(params);
console.log(customer.id);
};
createCustomer();
commonjsとes moduleで書き方が違うみたい。
補足
古いドキュメントだと@types/stripeを入れてたりするが、v8のstripeはすでにtypescript対応しているのでいれなくてもよい。
Discussion