Stripe V3 RedirectToCheckout Определение - PullRequest
1 голос
/ 14 июля 2020

Я пытаюсь выполнить проверку Stripe только на стороне клиента в моем проекте Angular 8. Я установил файл @ type / stripe-v3, но определение StripeClientCheckoutOptions отличается от всей документации на сайте Stripe (https://stripe.com/docs/js/checkout/redirect_to_checkout). В частности, в типизированной библиотеке отсутствуют "lineItems" и "mode", что вызывает ошибки в моем проекте Angular при сборке, когда я беру сгенерированный фрагмент проверки. Это просто случай несовершенной библиотеки типов?

enter image description here

введите описание изображения здесь

1 Ответ

2 голосов
/ 14 июля 2020

Это просто случай неактуальной библиотеки типов?

Да, определения типов DefinitherTyped для Stripe. js действительно выглядят устаревшими, как вы можно увидеть здесь:

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/stripe-v3/index.d.ts#L124 -L132

В качестве временной меры вы можете использовать @ts-ignore, и код должен компилироваться и работать нормально. Но лучшим долгосрочным решением было бы использовать новый модуль Stripe npm для загрузки Stripe. js, который включает собственные определения типов:

https://github.com/stripe/stripe-js

Определения типов для redirectToCheckout в @stripe/stripe-js актуальны и будут оставаться актуальными, поскольку библиотека поддерживается Stripe:

https://github.com/stripe/stripe-js/blob/master/types/stripe-js/checkout.d.ts

Если вы используете @stripe/stripe-js, вам больше не нужно включать тег Stripe. js <script> в свой HTML. Все, что вам нужно сделать, это импортировать модуль и вызвать функцию loadStripe:

import {loadStripe} from '@stripe/stripe-js';

const stripe = await loadStripe('pk_test_TYooMQauvdEDq54NiTphI7jx');

Это будет включать Stripe. js и создать экземпляр stripe со всеми последними типами. Библиотека также корректно обрабатывает среды рендеринга на стороне сервера без какой-либо дополнительной настройки.

...