typescript的记录重点,个人笔记

仅记录个人觉得很实用的地方

一.基础类型

1.布尔值

let isDone :boolean = false;

2.数字

3.字符串

4.never
5.元组

let x:[string,number] = ['hello',2104]

6.枚举enum

enum Corlor {Red = 0,Green = 1,Blue = 2}
let c:corlor = Color.Green

7.any

8.void

9.null、undefined

二.类型断言

三联合类型

let union : string | number 

四.接口interface

1.对类的的行为进行部分抽象以外
2.对对象的形状进行描述 (类似于自定义变量的类型)

可选属性:?
任意属性:[]
只读属性:readonly,在第一次给对象赋值的时候可以,以后只读

interface Person {
    readonly name:string,
    age?:number,
    [properName:string]:any,
}

五.数组的类型

let arr : number[] = [1,2,3];
let arr2 : Array[number] = [1,2,3]

六.类型断言

1.let length = (someValue).length

2.let length = (someValue as string).length

声明文件

1.declare 定义的类型只会用于编译时的检查,编译结果中会被删除

  1. .d.ts类型声明文件.
  2. 在使用到的文件开头,用'三斜线指令',表示引入了类型定义文件///
  3. 第三方声明文件
    TypeScript 2.0 推荐使用 @types 来管
    理。
    @types 的使用方式很简单,直接用 npm 安装对应的声明模块即可,以 jQuery 举例:
    npm install @types/jquery --save-dev
    可以在这个页面搜索你需要的声明文件。http://microsoft.github.io/TypeSearch/

七:内置对象

八:类型别名

type Name = string;

九:字符串字面量类型

约定取值只能是某字符串的几个

type EventNames = 'click' | 'scroll' | 'mousemove'

function handleEvent (ele:Element,event:EventNames) {
    }
}

十:元组

数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象。

let xcatliu: [string, number] = ['Xcat Liu', 25];

十一:枚举

枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,
颜色限定为红绿蓝等。

enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

可手动赋值

十二:类

类(Class):定义了一件事物的抽象特点,包含它的属性和方法
对象(Object):类的实例,通过 new 生成
面向对象(OOP)的三大特性:封装、继承、多态
封装(Encapsulation):将对数据的操作细节隐藏起来,只暴露对外的接口。
外界调用端不需要(也不可能)知道细节,就能通过对外提供的接口来访问该
对象,同时也保证了外界无法任意更改对象内部的数据
继承(Inheritance):子类继承父类,子类除了拥有父类的所有特性外,还有
一些更具体的特性
多态(Polymorphism):由继承而产生了相关的不同的类,对同一个方法可以
有不同的响应。比如 Cat 和 Dog 都继承自 Animal ,但是分别实现了自
己的 eat 方法。此时针对某一个实例,我们无需了解它是 Cat 还是
Dog ,就可以直接调用 eat 方法,程序会自动判断出来应该如何执行
eat
存取器(getter & setter):用以改变属性的读取和赋值行为
修饰符(Modifiers):修饰符是一些关键字,用于限定成员或类型的性质。比
如 public 表示公有属性或方法
抽象类(Abstract Class):抽象类是供其他类继承的基类,抽象类不允许被
实例化。抽象类中的抽象方法必须在子类中被实现
接口(Interfaces):不同类之间公有的属性或方法,可以抽象成一个接口。接
口可以被类实现(implements)。一个类只能继承自另一个类,但是可以实现
多个接口

1.三种访问修饰符(Access Modifiers),分别是
public 、 private 和 protected

2.抽象类
1)抽象类是不允许被实例化的 2)抽象类中的抽象方法必须被子类实现

abstract class Animal {
public name;
public constructor(name) {
this.name = name;
}
public abstract sayHi();
}
class Cat extends Animal {
public sayHi() {
console.log(`Meow, My name is ${this.name}`);
}
}
let cat = new Cat('Tom');

十三:类与接口

1.类实现接口
interface Alarm {
alert();
}
class SecurityDoor extends Door implements Alarm, Light {
alert() {
console.log('SecurityDoor alert');
}
}
2.接口继承接口,接口继承类

十四:泛型

泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而
在使用的时候再指定类型的一种特性。

function createArray(length: number, value: T): Array {
let result = [];
for (let i = 0; i < length; i++) {
result[i] = value;
}
return result;
}
createArray(3, 'x'); // ['x', 'x', 'x']
泛型约束
interface Lengthwise {
length: number;
}
function loggingIdentity(arg: T): T {
console.log(arg.length);
return arg;
}

十五:声明合并

重载
同名接口合并

你可能感兴趣的:(typescript的记录重点,个人笔记)