TS学习1类型

120 阅读2分钟

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

  1. 所有类型都可以分配给unknown  unknow类型比any更加严格
  2. unknow只能赋值给any或者unknow自身
  3. unknow没有办法读任何属性 方法也不可以调用
  4. 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;