TypeScript
zx 是用 TypeScript 编写的,并提供了相应的 libdefs。类型定义与 TS 4+ 兼容。
ts
// script.ts
import { $ } from 'zx'
const list = await $`ls -la`
一些运行时,例如 Bun 或 Deno,具有内置的 TS 支持。 Node.js 需要额外的设置。根据 ES 模块契约配置您的项目
- 在 package.json 中设置
"type": "module"
- 在 tsconfig.json 中设置
"module": "ESNext"
。
使用 TypeScript 编译器是最直接的方法,但是运行时对原生 TS 的支持正在逐渐增加。
bash
# Since Node.js v22.6.0
node --experimental-strip-types script.js
bash
# Since Node.js v22.6.0
NODE_OPTIONS="--experimental-strip-types" zx script.js
bash
npm install typescript
tsc script.ts
node script.js
bash
npm install ts-node
ts-node script.ts
# or via node loader
node --loader ts-node/esm script.ts
bash
npm install swc-node
swc-node script.ts
bash
npm install tsx
tsx script.ts
# or
node --import=tsx script.ts
bash
bun script.ts
bash
deno run --allow-read --allow-sys --allow-env --allow-run script.ts