乐趣区

关于node.js:node-与-tsnode

写在后面

node 是 javascript 语言的一个执行环境,能够间接执行 javascript 代码。随着前端技术的须要,在 javascript 语言的根底上扩大创造了 typescript 语言,typescript 语言是 javascript 扩大而来的一个超集。typescript 的语法查看能帮忙进步编程的效率和缩小出错率,因而在前端技术中被宽泛使用。

然而 typescript 语言没有对应的执行环境,须要通过编译成 javascript 后执行。将 typescript 语言编译成对应的 javascript 语言的工具有很多,比方 npm 上的 typescript 包,Vscode 中的 TypeScript 插件等等。

每次执行 typescript 语言都要先手动转化成 javascript 语言,再用 node 执行 js,那能不能提供一个环境能间接执行 ts 呢?因而 ts-node 就被创造进去了。ts-node 是 typescript 语言的执行环境,就像 node 是 javascript 语言的执行环境一样。

ts-node 也是基于 node 的,在 node 执行的 hook 里主动进行了 ts->js 的语言编译,使得 ts 能够被间接执行。

node 执行 js

// a.js
console.log('我是 a');

在控制台用 node 执行如下

typescript 编译 ts

// index.ts
let a: string = 'hello word';
console.log(a);

node 不能间接执行 ts,如下

须要装置 typescript 的编译工具。

npm i typescript

typescript 包提供了 tsc 命令用于编译 ts,运行命令 npx tsc index.ts,会在文件的同目录下生成一个同名的 index.js 文件。内容如下:

而后用 node 执行这个 js 文件:node index.js,如下

ts-node 执行 ts

// index.ts
let a: string = 'hello word';
console.log(a);

装置 ts-node

npm i ts-node

用 ts-node 执行 ts 文件

// 用 ts-node 间接执行
npx ts-node index.ts

// 或用 node 执行,requier ts-node
node -r ts-node/register index.ts

报以上的错是因为短少 node 的类型文件。

npm i @type/node 即可。再次运行以上代码,失去后果如下:

退出移动版