Monaco Editor: автоматическое создание TypeScript-объявлений

Я использую редактор Monaco, и мне интересно, если это возможно, для создания объявлений машинописного текста (*.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")

Заранее спасибо и привет... Питер

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

Он также может генерировать 1.js.map исходный файл карты compilerOptions.sourceMap = true;

Другие вопросы по тегам