mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 02:33:53 -06:00
Add missing isolatedModules error for export import (#47838)
* Add missing isolatedModules error for `export import` * Update existing baseline
This commit is contained in:
parent
954d0442eb
commit
0655f32e05
@ -39940,6 +39940,9 @@ namespace ts {
|
||||
name
|
||||
);
|
||||
}
|
||||
if (isType && node.kind === SyntaxKind.ImportEqualsDeclaration && hasEffectiveModifier(node, ModifierFlags.Export)) {
|
||||
error(node, Diagnostics.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SyntaxKind.ExportSpecifier: {
|
||||
|
||||
@ -867,6 +867,10 @@
|
||||
"category": "Error",
|
||||
"code": 1268
|
||||
},
|
||||
"Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.": {
|
||||
"category": "Error",
|
||||
"code": 1269
|
||||
},
|
||||
|
||||
"'with' statements are not allowed in an async function block.": {
|
||||
"category": "Error",
|
||||
@ -1421,7 +1425,7 @@
|
||||
"category": "Error",
|
||||
"code": 1474
|
||||
},
|
||||
|
||||
|
||||
"The types of '{0}' are incompatible between these types.": {
|
||||
"category": "Error",
|
||||
"code": 2200
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
tests/cases/compiler/factory.ts(3,1): error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.
|
||||
|
||||
|
||||
==== tests/cases/compiler/jsx.ts (0 errors) ====
|
||||
export namespace JSXInternal {
|
||||
export type HTMLAttributes = string
|
||||
export type ComponentChildren = string
|
||||
}
|
||||
|
||||
==== tests/cases/compiler/factory.ts (1 errors) ====
|
||||
import { JSXInternal } from "./jsx"
|
||||
|
||||
export import JSX = JSXInternal;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.
|
||||
|
||||
export function createElement<ElementType extends HTMLElement>(
|
||||
tagName: string,
|
||||
attributes: JSX.HTMLAttributes,
|
||||
...children: JSX.ComponentChildren[]
|
||||
): any {
|
||||
//...
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
//// [tests/cases/compiler/isolatedModulesExportImportUninstantiatedNamespace.ts] ////
|
||||
|
||||
//// [jsx.ts]
|
||||
export namespace JSXInternal {
|
||||
export type HTMLAttributes = string
|
||||
export type ComponentChildren = string
|
||||
}
|
||||
|
||||
//// [factory.ts]
|
||||
import { JSXInternal } from "./jsx"
|
||||
|
||||
export import JSX = JSXInternal;
|
||||
|
||||
export function createElement<ElementType extends HTMLElement>(
|
||||
tagName: string,
|
||||
attributes: JSX.HTMLAttributes,
|
||||
...children: JSX.ComponentChildren[]
|
||||
): any {
|
||||
//...
|
||||
}
|
||||
|
||||
|
||||
|
||||
//// [jsx.js]
|
||||
export {};
|
||||
//// [factory.js]
|
||||
export function createElement(tagName, attributes) {
|
||||
var children = [];
|
||||
for (var _i = 2; _i < arguments.length; _i++) {
|
||||
children[_i - 2] = arguments[_i];
|
||||
}
|
||||
//...
|
||||
}
|
||||
@ -1,14 +1,17 @@
|
||||
/user.ts(2,10): error TS1205: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.
|
||||
/user.ts(3,1): error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.
|
||||
/user.ts(17,10): error TS1205: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.
|
||||
/user.ts(25,10): error TS1448: 'CC' resolves to a type-only declaration and must be re-exported using a type-only re-export when 'isolatedModules' is enabled.
|
||||
|
||||
|
||||
==== /user.ts (3 errors) ====
|
||||
==== /user.ts (4 errors) ====
|
||||
// Error, can't re-export something that's only a type.
|
||||
export { T } from "./exportT";
|
||||
~
|
||||
!!! error TS1205: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.
|
||||
export import T2 = require("./exportEqualsT");
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.
|
||||
|
||||
// OK, has a value side
|
||||
export { C } from "./exportValue";
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
// @module: esnext
|
||||
// @isolatedModules: true
|
||||
// @noTypesAndSymbols: true
|
||||
|
||||
// @Filename: jsx.ts
|
||||
export namespace JSXInternal {
|
||||
export type HTMLAttributes = string
|
||||
export type ComponentChildren = string
|
||||
}
|
||||
|
||||
// @Filename: factory.ts
|
||||
import { JSXInternal } from "./jsx"
|
||||
|
||||
export import JSX = JSXInternal;
|
||||
|
||||
export function createElement<ElementType extends HTMLElement>(
|
||||
tagName: string,
|
||||
attributes: JSX.HTMLAttributes,
|
||||
...children: JSX.ComponentChildren[]
|
||||
): any {
|
||||
//...
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user