8000 module: commonJS produces require of .ts file? · Issue #8031 · microsoft/TypeScript · GitHub
[go: up one dir, main page]

Skip to content
module: commonJS produces require of .ts file? #8031
Closed
@cfv1984

Description

@cfv1984

TypeScript Version:

Version 1.8.9

Code

// A self-contained demonstration of the problem follows...
//in tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5"
  }
}

// in ../Util/Sanitizer.ts
export class Sanitizer{
  sanitize: function(str){/*various string cleanups*/}
}

//in ../Util/Util.ts
import {Sanitizer} from "./Sanitizer/Sanitizer";

export default {
    Sanitizer: Sanitizer
};

//in App.ts
import * as Util from "../Util/Util.ts";

Util.Sanitizer.sanitize("String");

Expected behavior:

//In App.js
var Util = require("../Util/Util.js");
Util.Sanitizer.sanitize("String");

Actual behavior:

//INVALID output for app code.
var Util = require("../Util/Util.ts");

Util.Sanitizer.sanitize("String");

Alternatives were tried

Without success. Doing

//in ../Util/Util.ts
export = {
    Sanitizer: Sanitizer
};

Yields

Module "project/path/to/Util/Util.ts" resolves to a non-module entity and cannot be imported using this construct.

When running tsc project/path/to/App.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    QuestionAn issue which isn't directly actionable in code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0