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
源映射文件
我正在使用 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
源映射文件