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;