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

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

最新文章

  1. MySQL分区表的管理~1
  2. Java(二)
  3. eclipse中outline中图标的含义
  4. Introduction ch3
  5. PN结的形成
  6. sql - and - or
  7. XMAL 中x名称控件的Auttribute
  8. Yeoman入门之安装及环境配置
  9. 新鲜出炉的JSON,拿走不谢!
  10. C# 获取变量或对象的栈与堆地址
  11. redis centos 6.5 redis版本3.2.8安装过程
  12. HBase scan setBatch和setCaching的区别
  13. 美团外卖app可行性分析
  14. 淘宝NPM镜像cnpm
  15. Node.js包的依赖及版本号(转)
  16. WIN32编程经验总结
  17. matplotlib简单示例
  18. jsp与Ajax技术
  19. Finding LCM LightOJ - 1215 (水题)
  20. Jekens 配置多项目SCM GitLab+Jenkins持续集成环境

热门文章

  1. 利用python进行数据分析--pandas入门1
  2. mysql转化时间戳毫秒到秒
  3. 【MongoDB】 windows下建立双机主从
  4. Android studio 不能创建Activity等文件
  5. 测开之路一百二十三:快速搭建python虚拟环境
  6. delphi自定义事件处理
  7. UVa 12169 Disgruntled Judge 紫书
  8. python 数据结构考题
  9. python3.5+django2.0快速入门(二)
  10. python列表-增强的赋值操作