TypeScript类型(二)

对象

 示例:

 //#region  js写法
// object表示一个js对象
let a: object;
a = {};
a = function () {
};
 //#endregion
//#region  TypeScript写法
 
// {} 用来指定对象中可以包含哪些属性
// 语法:{属性名:属性值,属性名:属性值}
// 在属性名后边加上?,表示属性是可选的,不常用
let b: {name: string, age?: number};
b = {name: '孙悟空', age: 18};

// [propName: string]: any 表示任意类型的属性  
let c: {name: string, [propName: string]: any};
c = {name: '猪八戒', age: 18, gender: '男'};

let c1:{name:string,[xxx:string]:number};
// 报错,因为自定类型是number,所以不能adress是string
c1={name:"ww",age:12,adress:"qq"}; 

//#endregion

  

函数结构的类型声明
/*
*   设置函数结构的类型声明:
*       语法:(形参:类型, 形参:类型 ...) => 返回值
* */
let d: (a: number ,b: number)=>number;// 返回值类型是number,并且参数是number
d = function (n1: number, n2: number): number{
    return 10;
}
数组的类型声明
/*
*   数组的类型声明:
*       类型[]
*       Array<类型>
* */
// string[] 表示字符串数组 数组中只有字符串
let e: string[];
e = ['a', 'b', 'c'];

// number[] 表示数值数值
let f: number[];
// 同上,数值数组
let g: Array<number>;
g = [1, 2, 3];

 

元组
元组就是固定长度的数组
/*
*   元组,元组就是固定长度的数组
*       语法:[类型, 类型, 类型]
* */
let h: [string, number];
h = ['hello', 123];
枚举
/*
* enum 枚举
*
* */
enum Gender{
    Male,
    Female
}

let i: {name: string, gender: Gender};
i = {
    name: '孙悟空',
    gender: Gender.Male // 'male'
}
类型的别名
// 比如说
let k=1 | 2 | 3 | 4 | 5;
let l=1 | 2 | 3 | 4 | 5;

 

改进:

// 这样写很重复,所以可以做别名
type myType = 1 | 2 | 3 | 4 | 5;
let k: myType;
let l: myType;
let m: myType;

 

posted @ 2022-11-24 22:31  安静点--  阅读(60)  评论(0)    收藏  举报