通过编译器 API 将打字稿模块编译为纯 Web JavaScript



我有一个节点脚本,我想在其中编译一个带有导出函数的 ts 文件到 javascript,该文件可以在 Web 上使用/嵌入到脚本标签中。

const ts = require("typescript");
// hard coded for demonstration
const typescriptCode = `
export function add(a: number, b: number): number {
return a + b;
}`;
let result = ts.transpile(typescriptCode, { 
compilerOptions: { 
module: ts.ModuleKind.None,
target: ts.ScriptTarget.ES5
}
});

但是,即使在编译选项中使用了ts.ModuleKind.None,程序仍然会输出一个脚本,该脚本尝试将函数绑定到导出。导出在网络上无效。result值 :

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function add(a, b) {
return a + b;
}
exports.add = add;

我怎么只能转译到这个/使result成为:

function add(a, b) {
return a + b;
}

您需要为module使用不同的值:

const source = `export function add(a: number, b: number): number {
return a + b;
}`;
transpile(source, { module: 'ESNext', target: 'ESNext' });

将产生:

export function add(a, b) {
return a + b;
}

最新更新