/* 限制参数和返回值类型 */
function sum(a:number,b:number):number{ return a+b }
直接使用字面量类型声明,限制a的值为10
let a:10;
使用 | 连接多个类型(联合类型)
let b:'male'|'female'
let c:boolean|string;
c=true
let s:string
any表示任意类型,一个变量设置为any相当于关闭了类型监测
let d:any d=10 d='hello' s=d
声明变量不赋值,将自动为any
let e;
unkwom 表示未知类型,不能赋值给其他变量
let f:unknown if(typeof f==='string'){ s=f }
类型断言:用来告诉解析器变unkwom量的实际类型
s=f as string s=<string>f
变量 as 类型 <类型> 变量 */
void 表示空,以函数为例,表示没有返回值的函数
function fn():void{ return } //nerver表示不会有返回值 function fn1():never{ throw new Error('爆索') }
指定对象中可以包含多个属性 属性名加?,表示是可选的
let o:{name:string,age?:number} o={name:'张三',age:18}
表示任意类型属性名为为string的属性
let g:{name:string,[xxx:string]:any}
对y的参数以及返回值类型做出限制
let y:(a:number,b:number)=>number;
y=function(n1:number,n2:number):number{ return n1+n2 }
对数组的类型做出限制
let arr:string[] let arr1:Array<number>
/* 元组,固定长度的数组 / let h:[string,string] / 枚举 */
enum Gender{ Male=0, Famale=1 } let k:{name:string,gender:Gender} k={ name:'苏子', gender:Gender.Male }
&表示同时
let p:{name:string}&{age:number}
p={name:'suzu',age:18}
类型别名
type myType=1|2|3|4|5 let u:myType