1、简单的命令行程序
创建一个ts文件,里面内容为:
#!/usr/bin/env ts-node
console.log('hello world')
然后给该文件添加执行权限:`chmod +x ./1.ts (Windows 不需要做这步,直接在 Git Bash 输入 ./1.ts 即可运行)。就会打出 hello world
2、接受命令行参数
在创建领一个ts文件,里面内容为:
#!/usr/bin/env ts-node
console.log(process.argv)
按上面 1 的方法运行,会报错(主要看这两段话,不懂的可以放弃了,或者翻译抢救一下)
解决方法:①初始化项目的 package.json > “npm init -y” ;安装 node 相关的类型定义 > “npm install @types/node” ;③再次运行
苹果用户得到结果:[ 'node', '/Users/frank/TypeScript/tsdemo/1.ts' ]
即argv的argv[0]为node,argv[1]为/Users/frank/TypeScript/tsdemo/1.ts,后面的参数则是用户执行文件时输入的,例“./1.ts 3 0”,则argv[2]为3,argv[3]为0。
那么@types/node 到底定义了什么呢?打开 ./node_modules/@types/node/index.d.ts 搜索 Process 就能看到 process 的定义了:
3、四则运算
按下图写好代码后,运行 “./1.ts 4 6” ,打出46,则该值为字符串,不是数值
但是这样执行 “./add.ts 1 s”,则会出现 NaN。改为下方代码(有可能会出错,要配置 ts 兼容ES6)。如果我们需要退出程序,只能使用 process.exit(N),其中的 N 是返回值。成功则返回 0, 失败则返回非 0。(这里不能用 return / break ,因为不能在顶级作用域运行 return / break)
(创建一个文件名为 tsconfig.json ,里面内容为: {"compilerOptions": {"lib": ["es2015" ,"dom","es2016"]}} ,想兼容啥就在里面加,格式自己格式化)