首页 文章

Monaco Editor:自动创建TypeScript-Declarations

提问于
浏览
0

我正在使用Monaco Editor并且我想知道,如果可能的话,用typescript-codes创建typescript声明(* .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");

(基本上我可以通过Commandline执行相同的操作:“tsc myTsCode.ts -d”)

在此先感谢和问候......彼得

1 回答

  • 1

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

    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 源 Map 文件

相关问题