web-dev-qa-db-ja.com

ノードjs + typescriptを使用してストライプをインポートする

アプリケーションにストライプをインポートする必要があります

最初にストライプ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_...')

誰かがこの問題を解決するのに役立つことができれば、プロジェクトを遅滞なく続行することは私にとって大きな助けになります。

ありがとうございました

16
Krishan

britzkopf が言ったように、stripはまだ独自の定義を提供していません(おそらく提供しないでしょう)が、 @ types/stripe からの型定義を使用できます。

npm install stripe @types/stripe

次に、次のようにStripeクラスをインポートして作成します。

import * as Stripe from 'stripe';
const stripe = new Stripe('xxx_xxx_xxx');

何らかの理由でより細かいインポートが必要な場合は、代わりにこの(ややハックな)アプローチを使用できます。

import { resources } from 'stripe';
const stripeData = require('stripe')('xxx_xxx_xxx');
const customers = new resources.Customers(stripeData, null);
15
8eecf0d2

機能リクエスト です。別の親指をあきらめてください。

6
britzkopf

私は同じ問題を抱えていて、提供された解決策は私にとってうまくいきませんでした:

import * as Stripe from 'stripe';
const stripe = new Stripe('xxx_xxx_xxx');

このアプローチを使用すると、このエラーが発生しました

[ts]型が呼び出しまたは構成シグネチャを持たない式では「new」を使用できません。 stripe.ts(1、1):タイプはこのインポートで発生します。名前空間スタイルのインポートは、呼び出すことも構築することもできず、実行時にエラーが発生します。代わりに、デフォルトのインポートまたはimport requireの使用を検討してください。 (エイリアス)クラスStripe(エイリアス)名前空間StripeインポートStripe

"allowSyntheticDefaultImports": truetsconfig.jsonを使用して機能させました。このコンパイルオプションを使用すると、TypeScriptで次のことが有効になります。

import Stripe from "stripe";

const secret = process.env.STRIPE_SECRET!;
export const stripe = new Stripe(secret);
4