问题标签 [transpiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4536 浏览

javascript - 如何编写 Typescript 插件?

是否有编写 Typescript 插件的文档/示例?


最后一次,我对将 Typescript 引入我的项目的想法非常有启发。但是,目前我认为这是不可能的,因为我未能找到任何有关编写 Typescript 插件的文档。我需要这个插件在编译期间组合类元数据,然后生成资产。这并不容易,但我已经为babel写过这样的东西,现在我很感兴趣是否可以用 Typescript 做同样的事情。

0 投票
3 回答
4399 浏览

compilation - 编译器和转译器之间的主要区别是什么?

Compilera和 a之间的主要区别是Transpiler什么?请问你能提供一些两者的例子吗?

0 投票
0 回答
486 浏览

javascript - 如何在 Typescript 中导入模块(浏览器端)?

我正在尝试从打字稿中的另一个文件导入模块。但我收到以下错误:

这是我在另一个文件(module.js)但在同一目录中的简单模块:

以及导入的文件(scripts.js):

和 index.html

有什么帮助吗?我很失落。tsconfig:

谢谢。

约翰。

0 投票
1 回答
384 浏览

compiler-construction - 这个关于函数式编程语言的陈述是否正确?

我在读一本关于编译器设计的书,里面有一段说,

不同语言的编译器的主要区别在于它们生成的代码。一般来说,可以说命令式和面向对象语言的编译器以汇编语言生成代码。而函数式语言编译器在 C 或 C++ 中生成。

关于 C/C++ 的最后一部分是否正确?我无法通过谷歌搜索找到任何东西,所以我在这里问。

0 投票
0 回答
203 浏览

javascript - 无法转译 es6;进口申报错误

我已经准备了很多关于这个主题的问题和文章,但似乎没有任何效果。我的错误是这样的:

SyntaxError: import declarations may only appear at top level of a module

这是我无法正确转译 es6 代码的结果。这是我的 webpack 和 .babelrc:

网络包:

.babelrc

我尝试了各种方法(例如使用 'babel-preset-es2015',以及 stage-0 添加),但似乎没有任何效果。

此代码在我的一个组件中:

在 中转换为 this index.bundle.js,这实际上引发了错误:

0 投票
1 回答
726 浏览

typescript - vs 代码不转译 ts 文件

我安装了 Visual Studio Code(版本 1.7.2)和 typescript 1.8。我在一个文件夹中构建了一个简单的 react-native 项目。(反应应用程序工作得很好,因为我可以在调试器中运行它)。现在我尝试整合打字稿。但是 vs code 不会在保存(ctrl+s)和构建(ctrl+b)时转换我的代码。这是我的tsconfig.json文件(位于我的项目的根目录中):

这是tasks.json文件:

编译发生得很好,因为 vs 代码能够从测试文件调用“mytest.ts”中挑选语法错误但是在保存或构建时没有生成“mytest.js”文件。我已按照此https://code.visualstudio.com/Docs/languages/typescript的说明进行操作

我仍然无法让 vs code 转译我的代码。

任何帮助,提示正确方向将不胜感激。

先感谢您

0 投票
1 回答
1485 浏览

javascript - TypeScript 应该在 ES5 的转译输出中调用 _super 之前分配给 this?

我对所有扩展抽象类的子类使用依赖注入。

问题是在抽象构造函数类中,我启动了一个我计划在其子项中覆盖的方法,如果需要的话。

我遇到了一个问题,即我注入的依赖项在从 super 启动的覆盖类中不可见。

这是一个代码示例:

所以一个问题的核心是typescript将Example类转译成代码如下:

而不是这个:

如您所见,如果我将this.helper之前放置_super在 JavaScript 中,this.helper将始终在_assemble. 即使super会调用该_assemble函数。

但默认分配给它是在_super调用之后。所以如果super类将调用汇编。_assemble第一次在示例中的覆盖方法中将不可见。

所以我的问题是...

它是一个错误吗?

或者

我不知道什么?

现在我解决了我的问题,只是_assemblesuper课堂上移除,并且总是从孩子那里调用它。但这只是感觉不对。

Nota Bene:这是编译后的 JavaScript 代码与固定的 JavaScript 代码演示:

TypeScript 通常的输出:

TypeScript 修复了 javascript 输出:

0 投票
0 回答
1090 浏览

angular - 在 Angular 2 模板中使用 array.prototype.includes

我正在使用角度cli。

我真的不明白我是否可以在我的 Angular html 模板代码中使用 array.prototype.includes。

如果我尝试在我的 .ts 代码中使用 array.prototype.includes,打字稿编译器会抛出错误消息

从以下链接 https://github.com/AngularClass/angular2-webpack-starter/issues/931看来,我必须修改 tsconfig.json 文件以将 es7 指定为 lib,而不是 es6。这适用于 .ts 文件。

但是,无论如何能够在我的 Angular 2 html 模板中使用 array.prototype.includes 并将其转换为等效的 es5 吗?

我知道 .includes 调用保持原样,因为当我在 IE 11 上运行应用程序时它们会引发错误。

还是我需要使用 polyfill 之类的?

这是我的 tsconfig.json 文件

谢谢

0 投票
2 回答
456 浏览

abstract-syntax-tree - 将 Hack 代码解析为抽象语法树

我希望将我的 Hack 代码分解为抽象语法树。请就可用的工具/库/github 存储库向我提供建议,这将帮助我将 Hack 代码解析为 AST。我找到了“h2tp”(对 Facebook 编写的 php 转译器的破解),但它不会将代码解析为 AST。我还尝试了这个项目,它可以满足我的要求,但是它不能识别许多操作员,并且需要大量的返工,这将花费很多时间。

0 投票
1 回答
289 浏览

javascript - 打字稿项目设置(第一次)

首先,经过数小时的谷歌搜索,我没有看到明确的答案,如果我忽略了某些内容,我很抱歉。

使用 Typescript 的快速版本 ,我该如何移动node_modulesoutDir或者我会以错误的方式处理事情?

长版本 我正在尝试开始使用打字稿,配置项目似乎是最难的部分。我的目标是让我的源代码src/server和我的输出bin/server

这是我的 tsconfig.json 供参考:

这是目录结构:

编译自我~/Project使用tsc -p src/server,繁荣我们有bin/server/server.js

要运行我正在使用 vs 代码,这里是launch.json

我得到的错误是Error: Cannot find module 'express',模块已安装,src/server/node_modules/express所以我猜我也必须移动node_modulesbin/server?这似乎不对。

typescript 的超级新手(从今天开始)感谢您花时间阅读我的长篇文章。

PS:假设一切都是最新版本。