TS类型
TS严格模式的开启和关闭
如果没有tsconfig.json文件需要 tsc --init 在tsconfig.json中找到strict
{
"compilerOptions":{
"strict": true //trye为开启严格模式 反之关闭严格模式
}
TS的类型为上到下包含
1. 顶级类型 any unknown
2. Object
3. String Number Boolean
4. string number boolean
5. 1 "123" true
6. never
顶级类型 any和unknow
any
1.any可以赋值给所有类型并且可以互相替换 2.any类型在对象没有这个属性的时候还在获取是不会报错的 4.any没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型 5.声明变量的时候没有指定任意类型默认为any 6.在使用any的时候就失去了TS的类型检测机制
unknow
- 所有类型都可以分配给unknown unknow类型比any更加严格
- unknow只能赋值给any或者unknow自身
- unknow没有办法读任何属性 方法也不可以调用
- unknow比any更安全、
Object类型
Object可以包含所有类型如:
let a:Object=1//数字 number
let b:Object="1"//字符串 string
let c:Object=true//布尔 boolean
let d:Object=\[]//数组 array
let e:Object={}//对象 object
let f:Object=()=>{}//函数 function
let g:Object=Symbol(1) //Symbol
let h:Object=BigInt(1) //BigInt
//非严格模式下
let i:Object=null
let j:Object=undefined
object 可以包含引用类型如 :
let d:object=[]//数组 Array
let e:object={}//对象 Object
let f:object=()=>{}//函数 Function
字符串类型
let a:string="poro" //字符串
let b:string=`poro${a}` //ES6的模板字符串
数字类型
let a:number= 1 //数字
let b:number= NaN //NAN
let c:number=706f726f //十六进制
let d:number=01110000//二进制
布尔类型
let a:boolean=true //true
let b:boolean=Boolean(1) //true
let c:boolean=!1 //false
null和undefined
let u: undefined = undefined; //定义undefined
let n: null = null; //定义null
void空值
void在没有返回值的情况下可以用void来定义
function warnUser(): void {
console.log("没有返回值")
}
void也可以来定义undefined 和unll (需要在非严格模式下)
let a: void = undefined
let b: void = null;