🍣

Stripeをnodeとtypescriptで実行するときのエラー

2021/06/30に公開

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'?

結論として次のリンク先に書き方が載ってた。
https://github.com/stripe/stripe-node#usage-with-typescript

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