--watch src 代表只监听 src 目录下的文件变化,然后执行下面的命令
-e ts 代表监听 ts 文件的变化,然后执行下面的命令
--exec 代表执行下面的命令
nodemom --watch src -e ts --exec 'node ./dist/index.js'
不用担心,这个错误,并不是我们的错误,原因是默认情况下,TS 会做出下面的几种假设:
- 假设当前环境是 dom 环境
- 如果代码没有模块化操作 import 或者 export 那么默认是全局执行
- 编译的目标代码是 es3
可以加上 TS 的配置文件,或者tsc
命令行的选项参 - 配置文件
使用配置文件后,在使用 tsc 进行编译时候,不能跟上文件名,如果跟上文件名,那么会忽略配置文
使用第三方库简化流程
npm install -g ts-node ts-node: ts 代码在内存中编译执行,同时完成运行
因为 tsc 命令是编译代码,node 只能运行 js 代码,ts-node 是编译并执行代码
nodemon: 监视文件变化,自动编译执行
npm install -g nodemon
基本类型约束
TS 是一个可选的静态的类型系统
如何进行类型约束
仅需要在 变量,函数的参数,函数的返回值位置加上 :类型
TS 在很多场景中可以完成类型推导
any 类型可以认为是任意类型的值,但是使用 any 类型会失去 TS 的类型检查功能
小技巧,如何区分数字字符串和数字,关键看怎么读?
如果按照数字的方式朗读,那么就是数字,否则就是字符串
源代码和编译结果的差异
编译结果中没用类型约束信息
基本类型
- number
- string
- boolean
- object
- array (支持 arr: number[] 这种写法)
- object(表示约束的对象)
- null 和 undefined 是所有类型的子类型,可以赋值给任何类型
(通过添加--strictNullChecks: true
,可以获得更严格的空类型检查,null 和 undefined 只能赋值给自身)
其他常用类型
-
联合类型: 表示一个变量可以是多种类型中的一种,例如:let num: number | string = 10; // 可以是数字或字符串类型。
配合类型保护进行判断,例如:
类型保护:当对某个变量进行类型判断之后,在判断的语句块中便可以确定它的确切类型,typeod 可以触发类型保护
if(typeof strss === "string"){ strss.toLocaleLowerCase() }
-
void 类型: 通常用于约束函数的返回值,表示改函数没有返回值。
例如:
function printMessage(message: string): void { console.log(message