Решение 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 ее использует.