Open pmer opened 2 years ago
What about updating the types to support only ES modules? 🤔
Hmm, interesting idea. Personally, I do not feel that I know enough to opine very strongly on this type of thing. Wonder if it would be possible to find open source users of getopts on NPM, then try building them with and without such a change to see if it would cause any disturbances, and by how much. But this is just because I am not an expert in this area!
Looks like Chalk has done this in v5 https://github.com/chalk/chalk/releases
@pmer Works for me! Do you want to send me a patch with the change? 💯
If I can find the time to test it, would love to! 😀
If I understand correctly, the TypeScript types are for the CommonJS version of the code. When using
"module": "ES2022"
intsconfig.json
withallowSyntheticDefaultImports: false
, importinggetopts
fails unless the type definitions are changed from:to
It might be possible to resolve this by providing different type definitions for CommonJS and ESM (different on only this one line) and using an extension to
package.json
that TypeScript 4.7 added (link) that lets TypeScript pick between type definition files based on the project's module type.Alternatively, enabling
allowSyntheticDefaultImports
for the project seems to fix it, too.