Suppress verbatimModuleSyntax error on ambient export default (#52414)

This commit is contained in:
Andrew Branch 2023-01-25 10:22:56 -08:00 committed by GitHub
parent 43ecac801b
commit 022516e24d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 72 additions and 4 deletions

View File

@ -43901,6 +43901,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
const isIllegalExportDefaultInCJS = !node.isExportEquals &&
!(node.flags & NodeFlags.Ambient) &&
compilerOptions.verbatimModuleSyntax &&
(moduleKind === ModuleKind.CommonJS || getSourceFileOfNode(node).impliedNodeFormat === ModuleKind.CommonJS);

View File

@ -1,4 +1,3 @@
/decl.d.ts(2,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.
/main.ts(1,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.
/main.ts(2,13): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.
/main.ts(3,10): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.
@ -12,13 +11,17 @@
/main7.ts(2,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.
==== /decl.d.ts (1 errors) ====
==== /decl.d.ts (0 errors) ====
declare function esmy(): void;
export default esmy;
~~~~~~~~~~~~~~~~~~~~
!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.
export declare function funciton(): void;
==== /ambient.d.ts (0 errors) ====
declare module "ambient" {
const _default: number;
export default _default;
}
==== /main.ts (6 errors) ====
import esmy from "./decl"; // error
~~~~

View File

@ -5,6 +5,12 @@ declare function esmy(): void;
export default esmy;
export declare function funciton(): void;
//// [ambient.d.ts]
declare module "ambient" {
const _default: number;
export default _default;
}
//// [main.ts]
import esmy from "./decl"; // error
import * as esmy2 from "./decl"; // error

View File

@ -8,6 +8,17 @@ export default esmy;
export declare function funciton(): void;
>funciton : Symbol(funciton, Decl(decl.d.ts, 1, 20))
=== /ambient.d.ts ===
declare module "ambient" {
>"ambient" : Symbol("ambient", Decl(ambient.d.ts, 0, 0))
const _default: number;
>_default : Symbol(_default, Decl(ambient.d.ts, 1, 9))
export default _default;
>_default : Symbol(_default, Decl(ambient.d.ts, 1, 9))
}
=== /main.ts ===
import esmy from "./decl"; // error
>esmy : Symbol(esmy, Decl(main.ts, 0, 6))

View File

@ -8,6 +8,17 @@ export default esmy;
export declare function funciton(): void;
>funciton : () => void
=== /ambient.d.ts ===
declare module "ambient" {
>"ambient" : typeof import("ambient")
const _default: number;
>_default : number
export default _default;
>_default : number
}
=== /main.ts ===
import esmy from "./decl"; // error
>esmy : () => void

View File

@ -17,6 +17,12 @@
declare class CJSy {}
export = CJSy;
==== /ambient.d.ts (0 errors) ====
declare module "ambient" {
const _export: number;
export = _export;
}
==== /types.ts (0 errors) ====
interface Typey {}
export type { Typey };

View File

@ -4,6 +4,12 @@
declare class CJSy {}
export = CJSy;
//// [ambient.d.ts]
declare module "ambient" {
const _export: number;
export = _export;
}
//// [types.ts]
interface Typey {}
export type { Typey };

View File

@ -13,6 +13,12 @@
declare class CJSy {}
export = CJSy;
==== /ambient.d.ts (0 errors) ====
declare module "ambient" {
const _export: number;
export = _export;
}
==== /types.ts (0 errors) ====
interface Typey {}
export type { Typey };

View File

@ -4,6 +4,12 @@
declare class CJSy {}
export = CJSy;
//// [ambient.d.ts]
declare module "ambient" {
const _export: number;
export = _export;
}
//// [types.ts]
interface Typey {}
export type { Typey };

View File

@ -9,6 +9,12 @@ declare function esmy(): void;
export default esmy;
export declare function funciton(): void;
// @Filename: /ambient.d.ts
declare module "ambient" {
const _default: number;
export default _default;
}
// @Filename: /main.ts
import esmy from "./decl"; // error
import * as esmy2 from "./decl"; // error

View File

@ -8,6 +8,12 @@
declare class CJSy {}
export = CJSy;
// @Filename: /ambient.d.ts
declare module "ambient" {
const _export: number;
export = _export;
}
// @Filename: /types.ts
interface Typey {}
export type { Typey };