Ts 的类
2024-10-07 11:53:35
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
通过上面的例子我们可以看到,在抽象类里定义的抽象方法,在子类中是不会继承的,所以在子类中必须实现该方法的定义
最新文章
- MySQL分区表的管理~1
- Java(二)
- eclipse中outline中图标的含义
- Introduction ch3
- PN结的形成
- sql - and - or
- XMAL 中x名称控件的Auttribute
- Yeoman入门之安装及环境配置
- 新鲜出炉的JSON,拿走不谢!
- C# 获取变量或对象的栈与堆地址
- redis centos 6.5 redis版本3.2.8安装过程
- HBase scan setBatch和setCaching的区别
- 美团外卖app可行性分析
- 淘宝NPM镜像cnpm
- Node.js包的依赖及版本号(转)
- WIN32编程经验总结
- matplotlib简单示例
- jsp与Ajax技术
- Finding LCM LightOJ - 1215 (水题)
- Jekens 配置多项目SCM GitLab+Jenkins持续集成环境