• Ts 的类


    TS 中的公共、私有和受保护的修饰符:

    1.public表示公共的,用来指定在创建实例后可以通过实例访问的,也就是类定义的外部可以访问的属性和方法。默认是 public

    2.private修饰符表示私有的,它修饰的属性在类的定义外面是没法访问的:

    class Parent {
      private age: number;
      constructor(age: number) {
        this.age = age;
      }
    }
    const p = new Parent(18);
    console.log(p); // { age: 18 }
    console.log(p.age); // error 属性“age”为私有属性,只能在类“Parent”中访问
    console.log(Parent.age); // error 类型“typeof ParentA”上不存在属性“age”
    class Child extends Parent {
      constructor(age: number) {
        super(age);
        console.log(super.age); // 通过 "super" 关键字只能访问基类的公共方法和受保护方法
      }
    }

    3.rotected修饰符是受保护修饰符,和private有些相似,但有一点不同,protected修饰的成员在继承该类的子类中可以访问

    4.readonly 修饰符

    只读不能修改

     参数属性

    参数属性简单来说就是在 constructor 构造函数的参数前面加上访问限定符,也就是前面讲的 public、private、protected 和 readonly 中的任意一个

    class B {
        constructor(public name: string) {
        }
    }
    const b = new B("aaa");
    console.log(b.name)

    静态属性

    和 ES6 的类一样,在 TS 中一样使用static关键字来指定属性或方法是静态的,实例将不会添加这个静态属性,也不会继承这个静态方法,你可以使用修饰符和 static 关键字来指定一个属性或方法

    可选类属性

    使用?符号来标记

    抽象类

    抽象类一般用来被其他类继承,而不直接用它创建实例。抽象类和类内部定义抽象方法,使用abstract关键字

    abstract class People {
      constructor(public name: string) {}
      abstract printName(): void;
    }
    class Man extends People {
      // error 非抽象类“Man”不会实现继承自“People”类的抽象成员"printName"
      constructor(name: string) {
        super(name);
        this.name = name;
      }
    }
    const m = new Man("lison");
    m.printName(); // error m.printName is not a function

    通过上面的例子我们可以看到,在抽象类里定义的抽象方法,在子类中是不会继承的,所以在子类中必须实现该方法的定义

  • 相关阅读:
    netty同时做http和websocket(netty入门)
    curl的概念及相关工具下载
    当删除某一个jar包时tomcat中出现problem encountered while deleting resources问题
    一个servlet处理多个请求或者叫方法
    在web中实现当前变量和前一个的比较
    URL中可以出现的字符
    在Editplus直接运行程序的步骤
    socket的相关知识理解
    011 python接口 bs4提取结果
    010 python接口 bs4解析html
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/11314338.html
Copyright © 2020-2023  润新知