gpt4 book ai didi

TypeScript createProgram 抛出 'ts.sys is undefined'

转载 作者:行者123 更新时间:2023-12-02 17:03:18 25 4
gpt4 key购买 nike

我正在尝试使用 createProgram,但我得到的是 ts.sys is undefined 此代码:

try {
createProgram(Utils.getFileNames(), {
lib: ['lib.es6.d.ts']
// target: ScriptTarget.ES5,
// module: ModuleKind.CommonJS
});
} catch (ex) {
debugger;
}

两种方法我都试过了,注释部分和 lib 选项。这是堆栈跟踪:

createCompilerHost@http://localhost:4200/vendor.js:203082:13
createProgram@http://localhost:4200/vendor.js:203374:24
./src/app/docs/generator.ts/Generator.generate@http://localhost:4200/main.js:1855:13
GettingStartedComponent@http://localhost:4200/main.js:3352:9
createClass@http://localhost:4200/vendor.js:42397:20
createDirectiveInstance@http://localhost:4200/vendor.js:42284:20
createViewNodes@http://localhost:4200/vendor.js:43504:36
createRootView@http://localhost:4200/vendor.js:43418:5
callWithDebugContext@http://localhost:4200/vendor.js:44449:22
debugCreateRootView@http://localhost:4200/vendor.js:43936:12
./node_modules/@angular/core/fesm5/core.js/</ComponentFactory_.prototype.create@http://localhost:4200/vendor.js:41764:20
./node_modules/@angular/core/fesm5/core.js/</ComponentFactoryBoundToModule.prototype.create@http://localhost:4200/vendor.js:36416:16
./node_modules/@angular/core/fesm5/core.js/</ViewContainerRef_.prototype.createComponent@http://localhost:4200/vendor.js:41874:28

重要信息:

createCompilerHost@http://localhost:4200/vendor.js:203082:13
createProgram@http://localhost:4200/vendor.js:203374:24

我使用的是来自 TS 维基页面的示例:https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#using-the-type-checker

我试着搜索这个问题,但找不到任何有用的东西。有没有我缺少的包,一些配置?我想不通。

感谢任何帮助...

我的导入:

import {
Node,
createProgram,
forEachChild,
isClassDeclaration,
isModuleDeclaration,
TypeChecker,
ScriptTarget,
ModuleKind
} from 'typescript';

最佳答案

TypeScript 编译器库需要一个编译器宿主来实现读写文件等操作。如果您不将编译器主机传递给 createProgram,则库会尝试根据较低级别的 ts.sys 对象自动创建默认主机。 ts.sys 反过来只会在类似 Node.js 的环境中自动生成。因此,要在非 Node.js 环境中使用 TypeScript 编译器库,您需要将自己的编译器主机传递给 createProgram(别担心,您只需要实现您需要的方法实际使用)或自己创建 ts.sys(尽管那是 less recommended)。

如果还没有关于错误消息的 TypeScript 问题,请随意提交。

关于TypeScript createProgram 抛出 'ts.sys is undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52969177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com