TypeScript/tests/cases/compiler/esModuleInterop.ts
Wesley Wigham 7e6315075d
Synthesize namespace records for proper esm interop (#19675)
* Integrate importStar and importDefault helpers

* Accept baselines

* Support dynamic imports, write helpers for umd module (and amd is possible) kinds

* Accept baselines

* Support AMD, use same helper initialization as is normal

* update typechecker to have errors on called imported namespaces and good error recovery with a quickfix

* Overhaul allowSyntheticDefaultExports to be safer

* Put the new behavior behind a flag

* Rename strictESM to ESMInterop

* ESMInterop -> ESModuleInterop, make default for tsc --init

* Rename ESMInterop -> ESModuleInterop in module.ts, add emit test (since fourslash doesnt do that)

* Remove erroneous semicolons from helper

* Reword diagnostic

* Change style

* Edit followup diagnostic

* Add secondary quickfix for call sites, tests forthcoming

* Add synth default to namespace import type, enhance quickfix

* Pair of spare tests for good measure

* Fix typos in diagnostic message

* Improve comment clarity

* Actually accept the updated changes to the esmodule interop description

* ESModule -> esModule

* Use find and not forEach

* Use guard

* Rely on implicit falsiness of Result.False

* These should have been emit flags
2018-01-08 16:36:23 -08:00

18 lines
390 B
TypeScript

// @esModuleInterop: true
// @filename: hybrid/index.d.ts
export function sayHello(): string;
// @filename: path.d.ts
declare const anything: any;
export = anything;
// @filename: fs.d.ts
declare const anything: any;
export = anything;
// @filename: mjts.ts
import { sayHello } from "./hybrid";
import path from "./path";
import * as fs from "./fs";
path;
sayHello();
fs;