TypeScript的那些事

TypeScript

1.数据类型

 1 1. number string boolean array 元组 枚举 null  undefined void never 
 2 TS规定一旦变量在初始时定义了变量类型,那么就不能修改。
 3 初始化str变量为string类型,就不能更改为number类型
 4 let str : string = "123456"
 5 
 6 数组类型:
 7 let arr : number[] = [1,2,3]
 8 let arr: Array<string> = ["1","2"]
 9 元组类型
10 // 是要求个数和类型保持一致
11 let user: [number, string] = [1,"2"]
// 接口可以实现继承 extends 可以同时继承多个,用逗号隔开
// 类,可以继承 extends。父类又称为基类。子类被称为派生类。
// 类继承后,子类可以对父类的方法重新定义,这个过程称之为方法的重写
// 修饰符
// 公共 public:可以自由的访问类程序里定义的成员
// 私有 private:只能够在该类的内部进行访问,实例对象并不能访问,并且继承该类的子类并不能访问
// 受保护 protect:除了在该类的内部可以访问,还可以在子类中仍然可以访问,实例对象同样不能访问受保护的属性
// 只读属性readnly: 必须在声明或者构造函数中初始化
// 静态属性 static


// 抽象类,抽象类作为其他派生类的基类进行使用,并不是直接进行实例化 abstract

 

// 高级类型
// 交叉类型 & 本质是一种合并的操作
// 联合类型 |  let ss: number | string;
// 类型别名 type 给一个类型起个新名字
// 类型索引  keyof 类似于 Object.keys ,用于获取一个接口中 Key 的联合类型
interface Button {
    type: string
    text: string
}

type ButtonKeys = keyof Button
// 等效于
type ButtonKeys = "type" | "text"

// 类型约束
type BaseType = string | number | boolean

// 这里表示 copy 的参数
// 只能是字符串、数字、布尔这几种基础类型
function copy<T extends BaseType>(arg: T): T {
  return arg
}

// 映射类型 通过 in 关键字做类型的映射,遍历已有接口的 key 或者是遍历联合类型
type Readonly<T> = {
    readonly [P in keyof T]: T[P];
};

interface Obj {
  a: string
  b: string
}

type ReadOnlyObj = Readonly<Obj>
// 条件类型

 

posted @ 2022-08-03 14:23  王依一  阅读(23)  评论(0编辑  收藏  举报