Решение Typescript AMD Target для CommonJS

У меня есть tsconfig в моем проекте, в котором указана цель модуля 'amd', но когда мой файл компилируется, я получаю вывод, который больше похож на CommonJS. Пример:

TSconfig:

{
    "compilerOptions": {
        "module": "amd",
        "target": "es5",
        "moduleResolution": "node",
        "sourceMap": false,
        "newLine": "LF",
        "baseUrl": ".",
        "lib": ["es5", "es2015.promise", "dom"]
    }
}

Файл машинописи:

export function test() {
    console.log('Starting Up', '<--------------');
}

Скомпилированный файл:

define(["require", "exports"], function (require, exports) {
    Object.defineProperty(exports, "__esModule", { value: true });
    function test() {
        console.log('Starting Up', '<--------------');
    }
    exports.test = test;
});

Ожидаемый скомпилированный файл:

define([], function () {
    function test() {
        console.log('Starting Up', '<--------------');
    }
    return { test: test };
});

Это объект "экспорта", который сбивает меня с толку. Это не должно быть необходимым для модуля AMD, только заявление возврата. Есть ли способ исправить это?

1 ответ

Решение

К сожалению нет. Это форма вывода AMD TypeScript, и она совместима с AMD. AMD предлагает эту возможность, а TypeScript ее использует.

Другие вопросы по тегам