twilio-node icon indicating copy to clipboard operation
twilio-node copied to clipboard

Incorrect types for PhoneNumberCapabilities

Open stephenwade opened this issue 2 years ago • 3 comments

Issue Summary

The TypeScript types for phone number capabilities are wrong. The types are all lowercase, but the actual API response has some uppercase keys. Also, the types say fax will be present, but it is absent.

Steps to Reproduce

image

Code Snippet

import { Twilio } from "twilio";

const keySid = "REDACTED";
const keySecret = "REDACTED";
const accountSid = "REDACTED";

const client = new Twilio(keySid, keySecret, { accountSid });

const [phoneNumber] = await client.availablePhoneNumbers("US").local.list();

console.log(Object.keys(phoneNumber.capabilities));
// [ 'voice', 'SMS', 'MMS' ]

Technical details:

  • twilio-node version: 3.83.3
  • node version: 16.8.1

stephenwade avatar Dec 02 '22 18:12 stephenwade

Hello @stephenwade. Thanks for pointing this out. I was able to reproduce the issue where the payload from the API and the phoneNumber.capabilities properties differ from the TS type. The SMS and MMS property names were all uppercase rather than lowercase. I'll check what the correct property names are for these should be.

Although, my API response and phoneNumber.capabilities object contained the fax property as well. I wasn't able to reproduce the missing fax property on my end.

Hunga1 avatar Dec 06 '22 03:12 Hunga1

Thanks for the reply @Hunga1! I guess you can ask the dev team what properties are optional and make those optional properties in the types. I can definitely reproduce the missing fax property every time so I think it should be optional (fax?: boolean).

stephenwade avatar Dec 06 '22 16:12 stephenwade

This issue has been added to our internal backlog to be prioritized (internal ref: DI-2467).

Hunga1 avatar Dec 06 '22 18:12 Hunga1