Closed
Description
Bug Report
π Search Terms
typeof import
import esm type from commonjs module
node12 nodenext
π Version & Regression Information
- I was unable to test this on prior versions because
"module": "node12"
only works intypescript@next
β― Playground Link
I was unable to find a way to emulate "type": "commonjs"
in package.json
on typescript playground
here is a repo that can be used to reproduce this error
https://github.com/nstringham/min-to-reproduce-typescript-import-problem
π» Code
{
"compilerOptions": {
"module": "nodenext"
}
}
export type Color = "red" | "green" | "blue";
export function printColor(color: Color): void;
import type { Color } from "dependency";
const myColor: Color = "blue";
const myOtherColor: import("dependency").Color = "red";
async function main() {
const { printColor } = await import("dependency");
printColor(myColor);
printColor(myOtherColor);
}
main();
π Actual behavior
code compiles correctly but displays the following error
index.ts:1:28 - error TS1471: Module 'dependency' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead.
1 import type { Color } from "dependency";
~~~~~~~~~~~~
index.ts:5:28 - error TS1471: Module 'dependency' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead.
5 const myOtherColor: import("dependency").Color = "red";
~~~~~~~~~~~~
π Expected behavior
code compiles correctly with no errors
βͺοΈ Workaround
because typescript compiles correctly despite errors this error can be ignored with // @ts-ignore