Skip to content

Commit f450c1b

Browse files
authored
Deprecate esModuleInterop and allowSyntheticDefaultImports (default to true) (#62567)
1 parent 542b095 commit f450c1b

File tree

465 files changed

+13887
-1016
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

465 files changed

+13887
-1016
lines changed

src/compiler/commandLineParser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1150,7 +1150,7 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
11501150
affectsBuildInfo: true,
11511151
category: Diagnostics.Interop_Constraints,
11521152
description: Diagnostics.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,
1153-
defaultValueDescription: Diagnostics.module_system_or_esModuleInterop,
1153+
defaultValueDescription: true,
11541154
},
11551155
{
11561156
name: "esModuleInterop",
@@ -1161,7 +1161,7 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
11611161
showInSimplifiedHelpView: true,
11621162
category: Diagnostics.Interop_Constraints,
11631163
description: Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,
1164-
defaultValueDescription: false,
1164+
defaultValueDescription: true,
11651165
},
11661166
{
11671167
name: "preserveSymlinks",

src/compiler/program.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4501,6 +4501,12 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
45014501
if (options.baseUrl !== undefined) {
45024502
createDeprecatedDiagnostic("baseUrl", /*value*/ undefined, /*useInstead*/ undefined, Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information);
45034503
}
4504+
if (options.esModuleInterop === false) {
4505+
createDeprecatedDiagnostic("esModuleInterop", "false", /*useInstead*/ undefined, /*related*/ undefined);
4506+
}
4507+
if (options.allowSyntheticDefaultImports === false) {
4508+
createDeprecatedDiagnostic("allowSyntheticDefaultImports", "false", /*useInstead*/ undefined, /*related*/ undefined);
4509+
}
45044510
});
45054511
}
45064512

src/compiler/utilities.ts

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9057,31 +9057,21 @@ const _computedOptions = createComputedCompilerOptions({
90579057
},
90589058
},
90599059
esModuleInterop: {
9060-
dependencies: ["module", "target"],
9060+
dependencies: [],
90619061
computeValue: (compilerOptions): boolean => {
90629062
if (compilerOptions.esModuleInterop !== undefined) {
90639063
return compilerOptions.esModuleInterop;
90649064
}
9065-
switch (_computedOptions.module.computeValue(compilerOptions)) {
9066-
case ModuleKind.Node16:
9067-
case ModuleKind.Node18:
9068-
case ModuleKind.Node20:
9069-
case ModuleKind.NodeNext:
9070-
case ModuleKind.Preserve:
9071-
return true;
9072-
}
9073-
return false;
9065+
return true;
90749066
},
90759067
},
90769068
allowSyntheticDefaultImports: {
9077-
dependencies: ["module", "target", "moduleResolution"],
9069+
dependencies: [],
90789070
computeValue: (compilerOptions): boolean => {
90799071
if (compilerOptions.allowSyntheticDefaultImports !== undefined) {
90809072
return compilerOptions.allowSyntheticDefaultImports;
90819073
}
9082-
return _computedOptions.esModuleInterop.computeValue(compilerOptions)
9083-
|| _computedOptions.module.computeValue(compilerOptions) === ModuleKind.System
9084-
|| _computedOptions.moduleResolution.computeValue(compilerOptions) === ModuleResolutionKind.Bundler;
9074+
return true;
90859075
},
90869076
},
90879077
resolvePackageJsonExports: {

tests/baselines/reference/APISample_jsdoc.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,41 @@ function getSomeOtherTags(node: ts.Node) {
129129
* https://github.com/vega/ts-json-schema-generator
130130
* Please log a "breaking change" issue for any API breaking change affecting this issue
131131
*/
132+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
133+
if (k2 === undefined) k2 = k;
134+
var desc = Object.getOwnPropertyDescriptor(m, k);
135+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
136+
desc = { enumerable: true, get: function() { return m[k]; } };
137+
}
138+
Object.defineProperty(o, k2, desc);
139+
}) : (function(o, m, k, k2) {
140+
if (k2 === undefined) k2 = k;
141+
o[k2] = m[k];
142+
}));
143+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
144+
Object.defineProperty(o, "default", { enumerable: true, value: v });
145+
}) : function(o, v) {
146+
o["default"] = v;
147+
});
148+
var __importStar = (this && this.__importStar) || (function () {
149+
var ownKeys = function(o) {
150+
ownKeys = Object.getOwnPropertyNames || function (o) {
151+
var ar = [];
152+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
153+
return ar;
154+
};
155+
return ownKeys(o);
156+
};
157+
return function (mod) {
158+
if (mod && mod.__esModule) return mod;
159+
var result = {};
160+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
161+
__setModuleDefault(result, mod);
162+
return result;
163+
};
164+
})();
132165
Object.defineProperty(exports, "__esModule", { value: true });
133-
var ts = require("typescript");
166+
var ts = __importStar(require("typescript"));
134167
// excerpted from https://github.com/YousefED/typescript-json-schema
135168
// (converted from a method and modified; for example, `this: any` to compensate, among other changes)
136169
function parseCommentsIntoDefinition(symbol, definition, otherAnnotations) {

tests/baselines/reference/APISample_linter.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,42 @@ fileNames.forEach(fileName => {
7979
* at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#traversing-the-ast-with-a-little-linter
8080
* Please log a "breaking change" issue for any API breaking change affecting this issue
8181
*/
82+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
83+
if (k2 === undefined) k2 = k;
84+
var desc = Object.getOwnPropertyDescriptor(m, k);
85+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
86+
desc = { enumerable: true, get: function() { return m[k]; } };
87+
}
88+
Object.defineProperty(o, k2, desc);
89+
}) : (function(o, m, k, k2) {
90+
if (k2 === undefined) k2 = k;
91+
o[k2] = m[k];
92+
}));
93+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
94+
Object.defineProperty(o, "default", { enumerable: true, value: v });
95+
}) : function(o, v) {
96+
o["default"] = v;
97+
});
98+
var __importStar = (this && this.__importStar) || (function () {
99+
var ownKeys = function(o) {
100+
ownKeys = Object.getOwnPropertyNames || function (o) {
101+
var ar = [];
102+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
103+
return ar;
104+
};
105+
return ownKeys(o);
106+
};
107+
return function (mod) {
108+
if (mod && mod.__esModule) return mod;
109+
var result = {};
110+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
111+
__setModuleDefault(result, mod);
112+
return result;
113+
};
114+
})();
82115
Object.defineProperty(exports, "__esModule", { value: true });
83116
exports.delint = delint;
84-
var ts = require("typescript");
117+
var ts = __importStar(require("typescript"));
85118
function delint(sourceFile) {
86119
delintNode(sourceFile);
87120
function delintNode(node) {

tests/baselines/reference/APISample_transform.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,41 @@ console.log(JSON.stringify(result));
3131
* at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function
3232
* Please log a "breaking change" issue for any API breaking change affecting this issue
3333
*/
34+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
35+
if (k2 === undefined) k2 = k;
36+
var desc = Object.getOwnPropertyDescriptor(m, k);
37+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
38+
desc = { enumerable: true, get: function() { return m[k]; } };
39+
}
40+
Object.defineProperty(o, k2, desc);
41+
}) : (function(o, m, k, k2) {
42+
if (k2 === undefined) k2 = k;
43+
o[k2] = m[k];
44+
}));
45+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
46+
Object.defineProperty(o, "default", { enumerable: true, value: v });
47+
}) : function(o, v) {
48+
o["default"] = v;
49+
});
50+
var __importStar = (this && this.__importStar) || (function () {
51+
var ownKeys = function(o) {
52+
ownKeys = Object.getOwnPropertyNames || function (o) {
53+
var ar = [];
54+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
55+
return ar;
56+
};
57+
return ownKeys(o);
58+
};
59+
return function (mod) {
60+
if (mod && mod.__esModule) return mod;
61+
var result = {};
62+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
63+
__setModuleDefault(result, mod);
64+
return result;
65+
};
66+
})();
3467
Object.defineProperty(exports, "__esModule", { value: true });
35-
var ts = require("typescript");
68+
var ts = __importStar(require("typescript"));
3669
var source = "let x: string = 'string'";
3770
var result = ts.transpile(source, { module: ts.ModuleKind.CommonJS });
3871
console.log(JSON.stringify(result));

tests/baselines/reference/APISample_watcher.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,41 @@ watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS });
126126
* at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#incremental-build-support-using-the-language-services
127127
* Please log a "breaking change" issue for any API breaking change affecting this issue
128128
*/
129+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
130+
if (k2 === undefined) k2 = k;
131+
var desc = Object.getOwnPropertyDescriptor(m, k);
132+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
133+
desc = { enumerable: true, get: function() { return m[k]; } };
134+
}
135+
Object.defineProperty(o, k2, desc);
136+
}) : (function(o, m, k, k2) {
137+
if (k2 === undefined) k2 = k;
138+
o[k2] = m[k];
139+
}));
140+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
141+
Object.defineProperty(o, "default", { enumerable: true, value: v });
142+
}) : function(o, v) {
143+
o["default"] = v;
144+
});
145+
var __importStar = (this && this.__importStar) || (function () {
146+
var ownKeys = function(o) {
147+
ownKeys = Object.getOwnPropertyNames || function (o) {
148+
var ar = [];
149+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
150+
return ar;
151+
};
152+
return ownKeys(o);
153+
};
154+
return function (mod) {
155+
if (mod && mod.__esModule) return mod;
156+
var result = {};
157+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
158+
__setModuleDefault(result, mod);
159+
return result;
160+
};
161+
})();
129162
Object.defineProperty(exports, "__esModule", { value: true });
130-
var ts = require("typescript");
163+
var ts = __importStar(require("typescript"));
131164
function watch(rootFileNames, options) {
132165
var files = {};
133166
// initialize the list of files

tests/baselines/reference/allowImportClausesToMergeWithTypes.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,24 @@ exports.zzz = 123;
3535
exports.default = exports.zzz;
3636
//// [a.js]
3737
"use strict";
38+
var __importDefault = (this && this.__importDefault) || function (mod) {
39+
return (mod && mod.__esModule) ? mod : { "default": mod };
40+
};
3841
Object.defineProperty(exports, "__esModule", { value: true });
3942
exports.default = void 0;
40-
var b_1 = require("./b");
43+
var b_1 = __importDefault(require("./b"));
4144
exports.default = b_1.default;
4245
var x = { x: "" };
4346
b_1.default;
4447
//// [index.js]
4548
"use strict";
49+
var __importDefault = (this && this.__importDefault) || function (mod) {
50+
return (mod && mod.__esModule) ? mod : { "default": mod };
51+
};
4652
Object.defineProperty(exports, "__esModule", { value: true });
47-
var a_1 = require("./a");
53+
var a_1 = __importDefault(require("./a"));
4854
var x = { x: "" };
4955
a_1.default;
50-
var b_1 = require("./b");
56+
var b_1 = __importDefault(require("./b"));
5157
b_1.default;
5258
var y = x;

tests/baselines/reference/allowSyntheticDefaultImports1.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ export class Foo {
1212

1313
//// [a.js]
1414
"use strict";
15+
var __importDefault = (this && this.__importDefault) || function (mod) {
16+
return (mod && mod.__esModule) ? mod : { "default": mod };
17+
};
1518
Object.defineProperty(exports, "__esModule", { value: true });
1619
exports.x = void 0;
17-
var b_1 = require("./b");
20+
var b_1 = __importDefault(require("./b"));
1821
exports.x = new b_1.default.Foo();

tests/baselines/reference/allowSyntheticDefaultImports3.errors.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
error TS5107: Option 'allowSyntheticDefaultImports=false' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
12
a.ts(1,8): error TS1192: Module '"b"' has no default export.
23

34

5+
!!! error TS5107: Option 'allowSyntheticDefaultImports=false' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
46
==== a.ts (1 errors) ====
57
import Namespace from "./b";
68
~~~~~~~~~

0 commit comments

Comments
 (0)