0

我正在使用摩纳哥编辑器,我想知道是否可以使用打字稿代码创建打字稿声明(* .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”)

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

4

1 回答 1

2

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

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

它还可以通过以下方式生成1.js.map源映射文件compilerOptions.sourceMap = true;

于 2017-05-04T07:44:21.000 回答