对象
// object表示一个对象
// 大括号 {} 可以表示一个对象
let a: object;
a = {};
a = function () { };
// 在属性名字后面加上一个问好?,表示属性是可选的
let b: { name: string, age?: number };//在属性名字后面加上问号 表示这个属性是可选的 有也可以没有也可以
// 要求这个对象的结构必需跟上面的一模一样才可以
b = { name: '美羊羊', age: 18 };//这个age可以可有可无
// propName这个名字是顺便取的 取什么都可以
// propName:string(意思是属性名 是字符串的意思)
// any 表示任意的属性值 如果any为string 那么18就必须改为字符串
let c: { name: string, [propName: string]: any }
//propName:string 是任意属性名的意思 意思是你可以随意取名字 如name可以取为hhjk这个名字都是可以的
c = { name: 'hhhhh', age: 18, }
/*
设置函数结构类型声明:
语法:(形参:类型,形参:类型...)=>返回值
*/
let d: (a: number, b: number) => number;
// d = function (a: number, b: number): number { //这里的number的意思是返回值必须是number 不然会报错噢
// return a + b;
// }
/*
数组声明方式:
1.类型[ ]
2.Array<类型> //尽量不用any就不用any
*/
// string[] 表示字符串数组
let f: number[];
f = [1, 2, 3];
let g: Array<number>; //表示是数字数组
g = [1, 2, 3];
// 元组的介绍
/*
元组:元组是固定长度的数组(效率比较好)
*/
let h: [string, string]; //这个表示设置了个固定数组长度为2的数组
h = ['sssss', 'ddddd'];//这里只有刚刚好的两个字符串才正确 多一个少一个都不可以
enum枚举的运用
/*
enum 枚举
*/
在一个枚举里面放相同的属性
enum Gender {
Male = 0,
Female = 1
}
let i: { name: string, gender: Gender };//性别用0和1来表示
i = {
name: "aaaaa",
gender: Gender.Male
}
类型别名
type myType = 1 | 2 | 3 | 4 | 5;
//let k:1|2|3|4|5
let k: myType; //这里可以用myType代替 然后可以节省代码