Monaco Editor:自动创建 TypeScript 声明

Monaco Editor: Creating TypeScript-Declarations automatically

我正在使用 Monaco Editor,我想知道是否可以从打字稿代码中创建打字稿声明 (*.d.ts)。

类似这样的伪代码:

var myTsCode = "function greeter(person: string): string { return 'Hello, ' + person; }";
var myDTS = monaco.languages.typescript.createdts(myTsCode); // returns 'declare function greeter(person: string): string;'

monaco.languages.typescript.typescriptDefaults.addExtraLib(myDTS, "filename/my.d.ts");

(基本上与我通过命令行执行的方式相同:"tsc myTsCode.ts -d")

提前致谢并问候......彼得

是的,显然这是可能的 - 试试这个(不完整的代码):

let compilerOptions = (monaco.languages.typescript.typescriptDefaults as any)
    .getCompilerOptions(); // getCompilerOptions is not "public"
compilerOptions.declaration = true;
monaco.languages.typescript.typescriptDefaults.setCompilerOptions(compilerOptions);

然后

getWorker.then((worker: any) => {
    worker(model.uri)
        .then((client: any) => {
            client.getEmitOutput(model.uri.toString()).then((result: any) => {
                console.log(result); // result.outputFiles[1].text
            });
        });
});

数组中的第二个文件是1.d.ts

它还可以通过compilerOptions.sourceMap = true;

生成1.js.map源映射文件