1.直接新建文件tsconfig.js 2.tsc --init
- 假设当前的执行环境是dom
- 如果代码中没有使用模块化语句(import export),便认为该代码是全局执行
- 编译目标是ES3
- 使用tsc命令行的时候,加上选项参数
- 使用TS配置文件,更改编译选项
tsc 根据ts配置文件来编译 编译某个文件 tsc //filename
使用了配置文件后,使用tsc进行编译时,不能跟上文件名,如果跟上文件名,会忽略配置文件
需要有node环境的话,使用@types/node
编译并执行 //ts-node: enrty 入口文件名
@types/node @types是一个ts官方的类型库,其中包含了很多对js代码的类型描述,如果需要使用jq的类型检查,@types/jquery
ts-node: 将ts代码在内存中完成编译,同时完成运行 ts-node /编译文件名
"scripts": { //--watch 监控那个目录下的文件 //-e 监控哪种类型的文件 //ts-node编译并执行文件 "dev": "nodemon -e ts --watch src --exec ts-node src/index.ts" }
TS是一个可选的静态类型系统
仅需要在 变量、函数的参数、函数的返回值位置上加上:类型
ts在很多场景中可以完成类型推导
any: 表示任意类型,对该类型,ts不进行类型检查
小技巧,如何区分字符串类型还是数字类型,看怎么读,数字读法就是数字类型比如一百三十三
编译结果中没有类型约束的信息
通过添加strictNullChecks: true
null和undefined只能赋值给自身。
- null 、 undefined
- 数字
- 字符串
- boolean
- object
- 联合类型:多种类型任选其一 比如 let str: string | number 配合类型保护进行判断 类型保护: 当对某个变量进行类型保护之后,在判断的语句块儿中便可以确定它的确切类型 typeof语句
- void类型:通常用于约束函数的返回值,表示该函数没有任何返回
- never类型:通常用于约束函数的返回值,表示该函数用于不可能结束
- 字面量类型: 使用一个值进行约束 比如 let a: "a" 然后 a = 'b'会报错
- 元祖类型(Tuple): 一个 固定长度的数组,并且数组中每一项的类型确定
- any类型: any类型可以绕过类型检查,因此,any类型的数据可以赋值给任意类型
对已知的一些类型定义名称 ···
type 类型名 = ...
···
函数重载: 在函数实现之前,对函数调用的多种情况进行声明 可选参数: 可以在某些参数名后加上问号,表示该参数可以不用传递.可选参数必须在参数的末尾
- 在类型约束位置,会产生重复代码。可以使用类型别名解决该问题。
- 逻辑含义和真是的值产生了混淆,会导致当修改真实值的时候,产生大量的修改。
- 字面量类型不会进入到编译结果。
针对数字的枚举
位运算: 俩个数字换算成二进制后进行的运算