基本类型

1.类型声明

1.1 变量进行类型声明

//可以先声明后赋值
let a:number
a=2
//可以同时进行声明和赋值
let a=123

1.2 函数进行类型声明

//函数的参数进行类型声明,会限制参数类型和个数
function sum(a:number,b:number){
	return a+b
}
//可以对函数返回值进行类型声明
function sum(a:number,b:number):number{
	return a+b
}

1.3 基本类型

alt

//字面量,可以限制变量的类型 用|分割开
let c :number|string
//any 任何类型,一个变量设置为any后相当于关闭了TS类型检测,any类型的变量可以赋值给其他变量
let d:any
//声明变量不指定类型,自动判定为any类型
let e
//unknown表示未知类型的值,也可以当作任何类型,不过它不能给别的变量赋值
let f:unknown
//类型断言,用来告诉解析器变量的实际类型
//变量 as类型 <类型>变量
f as string
d=<string>f
//void 表示空值,以函数为例,表示没有返回值的函数
function mn():void{
}
//never 表示永远不会返回结果
function nm():never{
  throw new console.error('报错了');
}
//{}用来指定对象中可以包含那些属性
//{属性名:属性值,属性名:属性值},在属性名后边加上?表示属性是可选的
let g:{name:string,age?:number}
g={name:'是是',age:12}
//{[propName:string]:any}对象里可以有任意属性
//设置函数结构的类型声明(形参:类型,形参:类型,...)=》返回值
let h:(a:number,b:number)=>number
h=function(n1:number,n2:number){
  return n1+n2
}
//数组的类型声明:类型[]/Array<类型>
let i:string[]
let j:Array<number>
//类型别名
type mytype=1|2|3
let k:mytype