美文网首页
typescript的记录重点,个人笔记

typescript的记录重点,个人笔记

作者: BirdNiao | 来源:发表于2017-12-19 06:35 被阅读34次

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

    一.基础类型

    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 = (<string>someValue).length
    
    2.let length = (someValue as string).length
    

    声明文件

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

    1. .d.ts类型声明文件.
    2. 在使用到的文件开头,用'三斜线指令',表示引入了类型定义文件///<reference path="./jQuery.d.ts">
    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<T>(length: number, value: T): Array<T> {
    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<T extends Lengthwise>(arg: T): T {
    console.log(arg.length);
    return arg;
    }
    

    十五:声明合并

    重载
    同名接口合并

    相关文章

      网友评论

          本文标题:typescript的记录重点,个人笔记

          本文链接:https://www.haomeiwen.com/subject/euovwxtx.html