Node 可以运行 .ts 文件,那为啥要使用 tsc 转译成 .js 呢? [复制]
Posted
技术标签:
【中文标题】Node 可以运行 .ts 文件,那为啥要使用 tsc 转译成 .js 呢? [复制]【英文标题】:Node can run .ts files, so why use tsc to transpile to .js? [duplicate]Node 可以运行 .ts 文件,那为什么要使用 tsc 转译成 .js 呢? [复制] 【发布时间】:2020-05-10 09:24:23 【问题描述】:以下适用于节点版本 12
node hello.ts
安装有什么意义
npm install -g typescript
然后做
tsc hello.ts
获取hello.js然后做
node hello.js
这两者有区别吗?我只用最少的代码对此进行了测试。与 tsc 相比,node 内部是否有根本不同的实现可以转换为 javascript?
谢谢
【问题讨论】:
请考虑 TypeScript 不仅用于 Node 环境。 为了使打字稿正常工作,它需要编译。这个问题已经回答***.com/questions/40752666/… 这能回答你的问题吗? How to use typescript/flow in nodejs without compiling it 更不用说你实际上不能像这样使用 node 运行 TypeScript,你的示例可能只是.ts
文件中的 vanilla JS 在这种情况下你可以将文件命名为 hello.abc123
和 Node也会运行它。
尝试一些 TypeScript 代码,它们实际上只使用 TypeScript 的特性。如果没有先编译/转换它,它就不会在 node.js 中运行。
【参考方案1】:
如果您在 ts 文件中编写 javascript 代码,例如:
console.log('Hello world');
nodejs 会执行它,扩展名 .ts 并不重要。
TS 可以转译 js 和 ts,但是当您编写更复杂的 TS 结构时,例如:
class Greeter
constructor(private hello)
public static greet()
console.log(this.greet);
Greeter.greet();
nodeJs 将无法执行代码,需要转译成 JS 执行或使用 ts-node 之类的库
【讨论】:
以上是关于Node 可以运行 .ts 文件,那为啥要使用 tsc 转译成 .js 呢? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
是否有任何选项可以使用 tsc 或 ts-node 或其他任何东西更快地编译和运行 ts 代码?
为啥我使用 nodemon 和 ts-node 时节点检查器不启动?