typescript 学习

一、基本类型

1、对象声明

注意: 声明a对象,包含name,和 age 均为string类型,[x:string]:string 表示可能存在其他string类型的属性,需要注意的是:若还有其他类型属性时,需满足条件:

① 固定属性为统一类型

② 其他属性和需要和固定类型属性类型相同

 ?表示此属性可有可无,规定属性内,不能存在其他属性,如上height为未声明的属性名称

2、函数声明

let a: (a:number, b:number) => number;

a = (a: number, b: number) => {
  return a + b;
}

函数声明的格式: (参数:类型,参数:类型) => 类型

let a: (a: number, b?: number, ...args: Array<number>) => void;

a = (a: number, b?: number, c?: number): void => {
  console.log(b?.toFixed());
};

需要注意的是:如果想使用b参数,那么只有在该参数存在的情况下才可以使用,如 b?.toFixed()

3、基本数据声明

let aa: number | string;

aa = 12;
aa = 'hello';
aa = []; // 报错


let cc: {name: string} & {age: number}

cc = {name: 'hello', age: 12}

|符号和&符号的使用: |符号可以使用多个,声明变量可以为多种类型,&符号也可以使用多个,标示属性的合并,如上

4、数组的声明

let aa: string[] | number[];

let bb: Array<string> | Array<number>;

声明方式有两种

5、枚举

enum Sex {
  mail,
  femail,
}
function pan(sex: Sex): Sex {
  if (sex === Sex.mail) {
    return Sex.mail;
  } else {
    return Sex.femail;
  }
}

枚举可以做为一种类型,声明到属性名中

 6、类型别名

type aa = {
  name: string;
  age: number;
}

let bb: aa;

bb = {
  name: 'helo',
  age: 12
}

定义类型别名,可以使用别名代表后面的一大推代码

原文地址:https://www.cnblogs.com/zhangycun/p/14468131.html