• TypeScript 学习三 类


    1,类:

    类是TypeScript的核心,大部分代码都是写在类里面;

    声明:class 类名{  属性; 方法(){};}

    注意:类名首字母同样大写,但是方法不需要表明类型,直接写方法名加()即可;属性也不要声明类型;直接写属性名即可;

    但是可以加上访问控制符public(类外类内都可访问),protected(类内和子类里可访问),private(类内访问);

    用protected和private修饰的构造函数,不能被实例化;但是用protected修饰的可以被继承;

    实例化:利用new关键字;

    例: class Person{

      name;

      eat(){

        console.log("eating");

      }

    }

    var p1=new Person();

    p1.name="zhangsna";

    p1.eat();

    构造函数:constructor,每次实例化时都会调用构造函数,类外只能用new可以调用;

    class Person{

      name; //声明属性

      constructor(name : String){  //构造函数

        this.name=name;

      }

    }

    可以用另一种写法:

    class Person{

      constructor(public name:String){

       //注意与constructor(name : String)不同,在构造函数处使用访问控制符要明确标明,加访问控制符是声明了name属性,不加则是没有声明name属性;

      }

      eat(){

        console.log(this.name);  //上边不加访问控制符是不会打出name的,会报错(因为不加访问控制符就是没声明name);

      }

     }

    2,类的继承:extends和 super

    子类继承了父类后,就会获得父类的所有属性和方法;

    super的两个用法:都是调用父类的方法时用,分别是构造方法和非构造方法

    调用父类的构造方法时使用super;

    class Employee extends Person{

      constructor (name : String ,code : String){

        super(name);

        this.code=code;

      }

      code:String;

      work(){

       super.eat();   //当调用父类的非构造方法时

        this.doWork();

      }

      private doWork(){ //将doWork()方法声明为private是为了在类外不能先调用,,防止不吃饭就干活,而是先让吃饭再干活;

      }

    }

    3,类有时可以当作接口使用:(因为类可以创建类型)

    class Point{

      x : number;

      y : number;

    }

    interface Point3d extends Point{

      z : number;

    }

    let point3d : Point3d = {x : 1, y : 2 ,z : 3};

    4,javascript中的函数,可以使用函数体外部的变量;当函数这么做时,我们说它‘捕获’了该变量;

    let z = 100;

    function addToZ(x , y){

      return x+y+z;

    }

  • 相关阅读:
    html常用属性手记
    html常用标签手记
    linux安装与命令大全
    14.ref参数
    13.out参数
    10.结构
    9.枚举
    8.常量
    6.使用Convert进行类型转换
    5.C#中的转义符和@符号
  • 原文地址:https://www.cnblogs.com/RitaLee/p/6180111.html
Copyright © 2020-2023  润新知