fix(typescript): allow synthetic default imports when using ModuleKind.ESNext (#16438)

Closes #16437
This commit is contained in:
David Sherret 2022-10-27 08:12:40 -04:00 committed by GitHub
parent 65f12f571b
commit bfd9912e1f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 24 additions and 1 deletions

View file

@ -57,6 +57,11 @@ itest!(check_npm_install_diagnostics {
exit_code: 1,
});
itest!(check_export_equals_declaration_file {
args: "check --quiet check/export_equals_declaration_file/main.ts",
exit_code: 0,
});
#[test]
fn cache_switching_config_then_no_config() {
let deno_dir = util::new_deno_dir();

View file

@ -0,0 +1,6 @@
// @deno-types="./other.d.ts"
import Test, { type Attributes } from "./other.js";
const other: Attributes = {};
console.log(Test());
console.log(other);

View file

@ -0,0 +1,9 @@
export = other;
declare function other(): string;
declare namespace other {
interface Attributes {
[attr: string]: string;
}
}

View file

@ -0,0 +1,3 @@
export default function other() {
return "test";
}

View file

@ -51163,7 +51163,7 @@ var ts;
var usageMode = file && getUsageModeForExpression(usage);
if (file && usageMode !== undefined) {
var result = isESMFormatImportImportingCommonjsFormatFile(usageMode, file.impliedNodeFormat);
if (usageMode === ts.ModuleKind.ESNext || result) {
if (result) {
return result;
}
// fallthrough on cjs usages so we imply defaults for interop'd imports, too