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 时节点检查器不启动?

为啥要使用 babel-loader 和 ts-loader?

TS 节点:找不到源文件

如何为特定版本的 node.js 安装 d.ts?

[javascript] typescript的安装