-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
error importing type from esm in commonjs #47338
Comments
So, my thoughts on this, since there have been a few issues in this vein (eg, #47248) and while I've spoken to them in team settings, I have yet to set them down. This is technically working as expected right now, since you're importing an esm format files from a cjs one using constructs that check runtime behavior. You may think, "But @weswigham, I'm only importing the types, surely that means it's safe to just give me the type data, right!?!? There's no runtime to be concerned about!" And you'd be right, but only in the narrowest sense - if we were to allow pulling types from modules whose format is incompatible like this, it becomes a breaking change to then add a compatible format to that package, rather than a non-breaking one. Meaning we'd be making adding more format compatibility via conditional Therefore, I would not expect us to ever make the above work as written; instead, I would anticipate us adding a syntax to specifically get the esm or cjs format type information for a specifier even when that's not the default mode for the file's imports (like how you have dynamic import available in a cjs context to do esm resolution). Something like |
makes sense. Thanks for looking into it |
Bug Report
π Search Terms
typeof import
import esm type from commonjs module
node12 nodenext
π Version & Regression Information
"module": "node12"
only works intypescript@next
β― Playground Link
I was unable to find a way to emulate
"type": "commonjs"
inpackage.json
on typescript playgroundhere is a repo that can be used to reproduce this error
https://github.com/nstringham/min-to-reproduce-typescript-import-problem
π» Code
/tsconfig.json
/dependency/index.d.ts
/index.ts
π Actual behavior
code compiles correctly but displays the following error
π Expected behavior
code compiles correctly with no errors
βͺοΈ Workaround
because typescript compiles correctly despite errors this error can be ignored with
// @ts-ignore
The text was updated successfully, but these errors were encountered: