- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
如何将多个 TS 文件合并为一个具有正确时间戳的 TS 文件?我可以将文件合并为一个,而无需接触数据。这将生成一个可播放的文件,但时间戳不正确,因此不会显示时间线(例如在 VLC 中)。因此,我需要重
有一个视频,其实是一个HLS流(TS文件的序列) 我想取出一个 TS block 并用另一个替换它。 另一个 block 将使用相同的 FFMPEG 编码设置进行编码。 如果你想知道我为什么需要这个:
这段代码取自https://en.cppreference.com/w/cpp/utility/variant/visit using var_t = std::variant; template s
我刚刚开始使用 ts-node。这是一个非常方便的工具。运行时间看起来很清晰。但它不适用于 CLI 解决方案。我无法将参数传递到编译的脚本中。 ts-node --preserve-symlinks
如果您愿意花 2 美分来解决调用另一个文件中定义的函数的问题,我将不胜感激。我阅读了 Typescript 的文档,其中建议设置一个接口(interface)或一个模块,然后引用它,但我收到了与下面相
我在努力 tsc ts/game.ts --out test.js --module amd 在我在 webstorm 中的 typescript 项目上,但是控制台没有显示任何错误,也没有输出 t
我已经意识到有一段时间了,一些 typescript 文件有一个 .d.ts 而其他的只有一个 .ts 扩展名。 它们代表什么?有什么区别? 最佳答案 这些是 declaration files ,或
是否有一种简单的方法可以将std::variant中包含的数据移动到std::variant中? 我想可以通过一个额外的类模板来切换Ts...中的所有类型,但是我想知道是否存在一种更优雅的就地方法。
我是 Angular 的新手,正在查看文档,但我想我也应该在这里问我的问题。 我正在导出一个越来越大的类,因此我想将其分成两个文件,并将 d1、d2、d3 等存储在一个单独的文件中,然后将它们导入到
无法通过指定 ts.t 找到条目(ts 是时间戳类型) 挖oplog,想搞清楚一秒钟有多少操作。 无法通过指定时间戳字段找到条目,其他字段可以。$在蒙戈外壳中: > db.oplog.rs.findO
这是我的 Angular5 项目结构。 tsconfig.app.json 和package.json 都包含这个部分 "include": [ "/src/main.ts",
我在 Angular 10 中有一个项目,遇到了奇怪的 TS (TSLint) 错误。在我使用 $localize 的任何地方的 Visual Studio Code 中,我都收到错误消息 Canno
所以我创建了一个快速服务器,它获取一个 mp3 文件(现在存储在本地,但稍后将从 mongo db 中获取)并使用 ffmpeg 制作 .m3u8 和 .ts 文件。文件成功发送到客户端,在客户端播放
我有一个 MY_FILE.ts像这样的文件: const someFunction = (param: MY_NAMESPACE.PARAM) : boolean => { // DO SOMETHI
我过去常常在运行前编译用 TS 编写的 e2e Protractor 测试,但现在我想出了如何在运行时编译 ts 文件——ts-node 似乎是一个很好的工具。正如许多文章所说,我在 Protract
我不熟悉 mod-rewrite,我找不到任何类似的问题或解决方案。 非常感谢... 模板: {query1}_{query2}.ts ts.php?v={query1}&seg={query2} 例
我有 firestore.service.ts,在一种方法中,我在 firebase 中创建和更新了一个集合……离开该方法后,我更改了集合的“id”,但我需要这个“id”是没有丢失,因为我需要它到下一
DefinitelyTyped 有许多库的类型定义,但当 Javascript 实现与 Typescript 分离时,我常常找不到使用它们的好方法,比如当库通过 a 将自己分配给窗口的属性时 标记,
我正在寻找一种在我发布到 NPM 时忽略项目中所有 .ts 文件的好方法,我可以通过将以下内容添加到我的 .npmignore 文件中来做到这一点: *.ts 但是等等......实际上我想在我的项目
我的 Yarn 工作区结构如下: /project package.json /packages /app package.json webpack.confi
我是一名优秀的程序员,十分优秀!