1)原始数据类型
let a:string = "哈哈";
2)任意类型:
let b:any
3)类型推论:没指定类型,给了初始值的话,默认该类型
let c = 'seven';
c = 7; //前后类型不一样,会报错
4)联合类型
let a:number|string
5)接口
//可选属性
//任意属性(注意:确定属性和可选属性类型必须是任意属性类型的子集)
//只读属性
interface Person={
name:number;
age?:string;
[propName:string]:any;
readonly id:number;
}
let obj:Person={
name:"小虎";
gerder:"任意属性";
}
obj.id=18 // 只读属性赋值会报错
6)数组表示
let arr:any[ ]=[1,"haha",{}];
let arr:Array<number>=[1,2,3];
7)函数类型
函数声明:function(a:number=2,b:number):number{
return a+b
}
es6中,函数添加默认值视为可选参数,此时就不受「可选参数必须接在必需参数后面」的限制了
函数表达式:let myFun:(a:number,b:number)=>number=function(a:number,b:number):number{
return a+b
}
ts的箭头函数表示输出,和es6不可混淆
接口定义函数:interface myFun{
(a:string,b:number):boolean
}
let demo:myFun;
demo=function(a:string,b:number):boolean{
return a.search(subString)!==-1
}
7)内置对象
let b: Boolean = new Boolean(1);
let e: Error = new Error('Error occurred');
let d: Date = new Date();let r: RegExp = /[a-z]/;
8)枚举
enum Days{one,two,three,four};
Days[0]==="one" //true
网友评论