TypeScript: 5.0.0-dev.20230103
- π’: both compile and runtime are working correctly
- π‘: for compile, it means there is an error, but can be suppressed (e.g. with
skipLibCheck
)
for runtime, it means the compile fails, but runtime is working - π΄: compile and/or runtime fails
- β: compile success, but runtime fails. Potentially a TypeScript bug.
- β: invalid usage in this test configuration
Import Syntax:
default as
:import { default as m } from 'm'
default
:import m from 'm'
* as
:import * as m from 'm'
named
:import { something } from 'm'
module | Package | Type | import: default as | import: default | import: * as | import: { named } |
---|---|---|---|---|---|---|
commonjs | assert | π» compile | π’ | π’ | π’ | β |
π runtime | π’ | π’ | π’ | β | ||
assertron | π» compile | π‘ TS1479-t | π‘ TS1479-t | π‘ TS1479-t | β | |
π runtime | π΄ type | π΄ type | π΄ type | β | ||
cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | β type-not-fn | β type-not-fn | π΄ type-not-fn-1 | β | ||
color-map | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
es-cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | β type-not-fn-2 | β type-not-fn-2 | π΄ type-not-fn-1 | β | ||
esm | π» compile | π’ | π’ | π’ | β | |
π runtime | β Error | β Error-1 | β Error-2 | β | ||
esm-cjs | π» compile | π’ | π’ | π’ | β | |
π runtime | β Error-3 | β Error-4 | β Error-5 | β | ||
named-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | β type-1 | β type-1 | π’ | π’ | ||
named-es-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | β type-1 | β type-1 | π’ | π’ | ||
named-esm | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
named-esm-cjs | π» compile | π΄ TS2305 | π΄ TS1192 | π’ | π’ | |
π runtime | π΄ type-1 | π΄ type-1 | π’ | π’ | ||
param-case | π» compile | π’ | π’ | π΄ TS2497-e | β | |
π runtime | π’ | π’ | π΄ type-not-fn-3 | β | ||
es2015 | assert | π» compile | π’ | π’ | π’ | β |
π runtime | π’ | π’ | π’ | β | ||
assertron | π» compile | π‘ TS1479-t | π‘ TS1479-t | π‘ TS1479-t | β | |
π runtime | π‘ | π‘ | π‘ | β | ||
cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
color-map | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
es-cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
esm | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
esm-cjs | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
named-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-es-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-esm | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
named-esm-cjs | π» compile | π΄ TS2305 | π΄ TS1192 | π’ | π’ | |
π runtime | π΄ syntax | π΄ syntax | π’ | π’ | ||
param-case | π» compile | π’ | π’ | π΄ TS2497-a | β | |
π runtime | π’ | π’ | π΄ type-not-fn-3 | β | ||
es2020 | assert | π» compile | π’ | π’ | π’ | β |
π runtime | π’ | π’ | π’ | β | ||
assertron | π» compile | π‘ TS1479-t | π‘ TS1479-t | π‘ TS1479-t | β | |
π runtime | π‘ | π‘ | π‘ | β | ||
cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
color-map | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
es-cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
esm | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
esm-cjs | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
named-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-es-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-esm | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
named-esm-cjs | π» compile | π΄ TS2305 | π΄ TS1192 | π’ | π’ | |
π runtime | π΄ syntax | π΄ syntax | π’ | π’ | ||
param-case | π» compile | π’ | π’ | π΄ TS2497-a | β | |
π runtime | π’ | π’ | π΄ type-not-fn-3 | β | ||
es2022 | assert | π» compile | π’ | π’ | π’ | β |
π runtime | π’ | π’ | π’ | β | ||
assertron | π» compile | π‘ TS1479-t | π‘ TS1479-t | π‘ TS1479-t | β | |
π runtime | π‘ | π‘ | π‘ | β | ||
cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
color-map | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
es-cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
esm | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
esm-cjs | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
named-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-es-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-esm | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
named-esm-cjs | π» compile | π΄ TS2305 | π΄ TS1192 | π’ | π’ | |
π runtime | π΄ syntax | π΄ syntax | π’ | π’ | ||
param-case | π» compile | π’ | π’ | π΄ TS2497-a | β | |
π runtime | π’ | π’ | π΄ type-not-fn-3 | β | ||
esnext | assert | π» compile | π’ | π’ | π’ | β |
π runtime | π’ | π’ | π’ | β | ||
assertron | π» compile | π‘ TS1479-t | π‘ TS1479-t | π‘ TS1479-t | β | |
π runtime | π‘ | π‘ | π‘ | β | ||
cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
color-map | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
es-cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
esm | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
esm-cjs | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
named-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-es-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-esm | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
named-esm-cjs | π» compile | π΄ TS2305 | π΄ TS1192 | π’ | π’ | |
π runtime | π΄ syntax | π΄ syntax | π’ | π’ | ||
param-case | π» compile | π’ | π’ | π΄ TS2497-a | β | |
π runtime | π’ | π’ | π΄ type-not-fn-3 | β | ||
node16 | assert | π» compile | π’ | π’ | π’ | β |
π runtime | π’ | π’ | π’ | β | ||
assertron | π» compile | π‘ TS1479-t | π‘ TS1479-t | π‘ TS1479-t | β | |
π runtime | π‘ | π‘ | π‘ | β | ||
cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
color-map | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
es-cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
esm | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
esm-cjs | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
named-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-es-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-esm | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
named-esm-cjs | π» compile | π΄ TS2305 | π΄ TS1192 | π’ | π’ | |
π runtime | π΄ syntax | π΄ syntax | π’ | π’ | ||
param-case | π» compile | π’ | π’ | π΄ TS2497-a | β | |
π runtime | π’ | π’ | π΄ type-not-fn-3 | β | ||
nodenext | assert | π» compile | π’ | π’ | π’ | β |
π runtime | π’ | π’ | π’ | β | ||
assertron | π» compile | π‘ TS1479-t | π‘ TS1479-t | π‘ TS1479-t | β | |
π runtime | π‘ | π‘ | π‘ | β | ||
cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
color-map | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
es-cjs | π» compile | π’ | π’ | π΄ TS2554 | β | |
π runtime | π’ | π’ | π‘ | β | ||
esm | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
esm-cjs | π» compile | π’ | π’ | π’ | β | |
π runtime | π’ | π’ | π’ | β | ||
named-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-es-cjs | π» compile | π’ | π’ | π’ | π’ | |
π runtime | π’ | π’ | π’ | π’ | ||
named-esm | π» compile | β | β | β | β | |
π runtime | β | β | β | β | ||
named-esm-cjs | π» compile | π΄ TS2305 | π΄ TS1192 | π’ | π’ | |
π runtime | π΄ syntax | π΄ syntax | π’ | π’ | ||
param-case | π» compile | π’ | π’ | π΄ TS2497-a | β | |
π runtime | π’ | π’ | π΄ type-not-fn-3 | β |
TS1192
:Module '"/home/homa/code/cyberuni/ts-esm-interop/packages/named-esm-cjs/node16/index"' has no default export.
TS1479-t
:The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("tersify")' call instead.
TS2305
:Module '"named-esm-cjs"' has no exported member 'default'.
TS2497-a
:This module can only be referenced with ECMAScript imports/exports by turning on the 'allowSyntheticDefaultImports' flag and referencing its default export.
TS2497-e
:This module can only be referenced with ECMAScript imports/exports by turning on the 'esModuleInterop' flag and referencing its default export.
TS2554
:Expected 0 arguments, but got 1.
Error
: `Command failed: node esm.default-as.all.js node:internal/modules/cjs/loader:535 throw e; ^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm.default-as.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }
Node.js v18.12.1 `
Error-1
: `Command failed: node esm.default.all.js node:internal/modules/cjs/loader:535 throw e; ^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm.default.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }
Node.js v18.12.1 `
Error-2
: `Command failed: node esm.star.all.js node:internal/modules/cjs/loader:535 throw e; ^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm.star.all.js:26:24) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }
Node.js v18.12.1 `
Error-3
: `Command failed: node esm-cjs.default-as.all.js node:internal/modules/cjs/loader:535 throw e; ^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm-cjs.default-as.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }
Node.js v18.12.1 `
Error-4
: `Command failed: node esm-cjs.default.all.js node:internal/modules/cjs/loader:535 throw e; ^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm-cjs.default.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }
Node.js v18.12.1 `
Error-5
: `Command failed: node esm-cjs.star.all.js node:internal/modules/cjs/loader:535 throw e; ^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm-cjs.star.all.js:26:24) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }
Node.js v18.12.1 `
syntax
:The requested module 'named-esm-cjs' does not provide an export named 'default'
type
:Cannot read properties of undefined (reading 'truthy')
type-1
:Cannot read properties of undefined (reading 'greet')
type-not-fn
:cjs_1.default.default is not a function
type-not-fn-1
:m.default.default is not a function
type-not-fn-2
:es_cjs_1.default.default is not a function
type-not-fn-3
:paramCase is not a function
Depends on the test configuration, the way to consume a module are different.
In this section we describe each module and how they are consumed within this configuration.
import { default as assert } from 'assert'
assert(true)
import assert from 'assert'
assert(true)
import * as assert from 'assert'
assert.default(true)
import { default as assertron } from 'assertron'
assertron.default.truthy(true)
import assertron from 'assertron'
assertron.default.truthy(true)
import * as assertron from 'assertron'
assertron.default.default.truthy(true)
import { default as m } from 'cjs'
m.default()
import m from 'cjs'
m.default()
import * as m from 'cjs'
m.default.default(1)
import { default as m } from 'es-cjs'
m.default()
import m from 'es-cjs'
m.default()
import * as m from 'es-cjs'
m.default.default(1)
import { default as m } from 'esm-cjs'
m()
import m from 'esm-cjs'
m()
import * as m from 'esm-cjs'
m.default()
import { default as m } from 'esm-cjs'
m()
import m from 'esm-cjs'
m()
import * as m from 'esm-cjs'
m.default()
import { default as m } from 'named-cjs'
m.greet()
import m from 'named-cjs'
m.greet()
import { greet } from 'named-cjs'
greet()
import * as m from 'named-cjs'
m.greet()
named-es-cjs.default-as.all.ts:
import { default as m } from 'named-es-cjs'
m.greet()
import m from 'named-es-cjs'
m.greet()
import { greet } from 'named-es-cjs'
greet()
import * as m from 'named-es-cjs'
m.greet()
named-esm-cjs.default-as.all.ts:
import { default as m } from 'named-esm-cjs'
m.greet()
import m from 'named-esm-cjs'
m.greet()
import { greet } from 'named-esm-cjs'
greet()
import * as m from 'named-esm-cjs'
m.greet()
import { default as paramCase } from 'param-case'
paramCase('hello world')
import paramCase from 'param-case'
paramCase('hello world')
import * as paramCase from 'param-case'
paramCase('hello world')