1、数据类型:boolean,number,string,void ,null undefined
undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量
2、变量定义
let +变量名:数据类型
let i:number = 0;
let name:string = '张三';
let win:boolean = true;
- 任意值:any
用来表示允许赋值为任意类型。声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型。
类型推论:在定义变量的时候,没有指定变量类型,但是赋值了某个类型的值,那么会自动推论出这个变量是相应的类型。
let i :any = 100;
i = '张三';
i = true;
i = function(){};
- 联合类型: 定义的变量可以存储多种类型。
let 变量名:数据类型1|数据类型2
let i : number | string ;
i = 10;
i ='张三';
i = true;
3、函数定义
function 函数名():函数类型 {
函数体
}
function compare():void{
}
4、接口
类似于结构体,用于创建对象。在接口中定义对象的属性。(一般首字母大写)
interface Person{
id:number;
name:string
}
//学生对象
let student:Person ={
id:1001,
name:'张三'
}
- 可选属性
定义接口的时候把这个属性设置为可选属性的方式: 属性名?:类型
interface Person{
id:number;
name?:string
}
let student:Person={
id:1001
}
- 如果接口中没有该属性,却需要在对象中加属性,那么可以在接口中定义多属性。
定义多属性的方法:[属性名字:string] : 指定类型或者any
interface Person{
id:number,
name?:string,
[propName:string]:number|string|boolean //属性名必须指定为字符串
}
let i:Person={
id:1001,
name:'张三',
age:100,
win:true,
name1:'李四'
}
- 只读属性 readonly
interface Person{
readonly id:number,
name:string
}
let i : Person = {
id:1001, //只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候
name:'张三'
}
i.id = 100; //id是只读属性,不允许修改,修改会报错。
5、数组
let 数组名 : 数据类型[ ] = [ ];
let arrNum:number[] = [1,2,3,4,5];
arrNum.push('张三');
arrNum.push(100);
let arr:any=[];
arr.push(11);
arr.push('张三');