- Notifications
You must be signed in to change notification settings - Fork 67
Description
I use Xendit in my NodeJS and using TypeScript.
I tried to call EWallet.createEWalletCharge(args: {}) and QrCode.createCode(args: {}) and get TypeError: Cannot read properties of undefined to all parameters that use your enum. (in my case Currency, ChannelCode, QrCodeTypes)
I think because the enum is not convert properly to be string in the javascript code (🤔 just my opinion, still not sure because haven't check it deeper).
I think despite of using enum, better for you to use Union Type and the we still can get the value suggestion too like the image I put below.
So here's the example:
// BEFORE: enum Currency { IDR = 'IDR', PHP = 'PHP', } // AFTER: type Currency = 'IDR' | 'PHP';Maybe you can change all enum into union type like that.
And I found 1 more problem, ChannelCode in ewallet_charge.d.ts not cover all of the ewallet method.
Thank you.
NOTE:
- Image for the value suggestion if using union type
- How to repo the error:
Just run this code
try { const xendit = new Xendit({ secretKey: "xnd_development_xxxxxxxxxxxxxxxxxx" }); const result = await new PaymentGateway.EWallet({}).createEWalletCharge({ referenceID: "ID", currency: Currency.IDR, amount: 9999, checkoutMethod: "ONE_TIME_PAYMENT", channelCode: ChannelCode.ID_OVO, channelProperties: { mobileNumber: "+628123423423" } }); } catch (error) { console.log(error); }