要一直走下去

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、对象类型声明

直接声明成object用处不大,因为js中一切皆对象

let a:object;
a={};
a=function(){};

A:指定对象中可以包含哪些属性

     语法: let  变量名{属性名:属性值,属性名1:属性值1}   表示对象的格式必须一模一样

let b:{
    name:string
};

b={
    name:'xdclass'
};

B:对象包含必须有的属性,也包含可有可无的属性

// 我们指定的对象它必须包含一个name,但是还有age和sex这个俩个变量是可能有可能有没有的,这种情况我们该怎样做呢?
let c:{
    name:string,
    age?:number,
    sex?:string
}

c={
   name:'xdclass',
   age:12 
}

C:对象包含必须有的属性,其他的所有属性可有可无

// 当我们只知道我们必须有的属性,而其他的不必须我们不知道,我们该怎么处理呢?
let d:{
    name:string,
    [propName:string]:unknown
}

d={
    name:'xdclass',
    sayHello(){
        console.log(this.name);
    }
}

console.log(d.name);
if (typeof d.sayHello === 'function'){
    d.sayHello();
}

2、数组类型声明

数组类型声明的语法:
  第一种: let 变量名:类型名[];
  第二种: let 变量名:Array<类型名>;
let a:string[];
a[0]='xdclass';
a[1]=true;  //报错

let b:Array<boolean>;
b[0]=false;
b[1]='xdclass';  //报错

如果你想创建一个能存储任意类型的数组

let e:Array<any>;
let e:any[];

3、扩展类型tuple

let h:[string,string];   //这就表示我定义一个元组,在这个元组中有两个值,第一个值是string类型。第二个值也是string
let a:[string,boolean,number];  //在这个元组中有三个值,第一个值是string类型,第二个值是boolean类型,第三个值是number类型
let a:[string,boolean,number];
a=['xdclass',true,123];

4、枚举enum的声明

1)数字枚举,默认情况下,第一个枚举值是0,后续枚举值依次+1

enum Color {
    red,
    blue,
    yellow
}

console.log(Color.red)    //0
console.log(Color.blue)   //1
console.log(Color.yellow)  //2

2)字符串枚举

enum b{
    red='红',
    yellow='黄',
    blue='蓝'
}

console.log(b.red);    //
console.log(b.yellow);  //
console.log(b.blue);   //

5、联合类型声明以及类型别名

1)变量的联合类型:一个变量的值可以是有限个数据类型

let a:number|string;
a=123;
a='xdlcass';

2)常量的联合类型:一个变量的取值,只能是有限个常量,类似枚举

let b:12|13|14|15;
b=12;
b=15;
b=16;  //报错

3)类型别名:常量联合类型的复用

// let a:1|2|3|4|5|6|7|8|9|10;
// let b:1|2|3|4|5|6|7|8|9|10;

type myType=1|2|3|4|5|6|7|8|9|10;
let a:myType;
let b:myType;

 

posted on 2022-07-10 22:48  要一直走下去  阅读(2622)  评论(0编辑  收藏  举报