类的申明
我们先申明一个类:
// 类
class Person {
name; // 类的属性
eat() { // 类的方法
console.log('i am eating');
}
}
类的实例化:
// 类的实例化
var p1 = new Person();
p1.name = 'zhagnsan';
p1.eat();
类的实例化的关键字是new。
可以实例化多个:
var p2 = new Person();
p2.name = 'lisi';
p2.eat();
访问控制符
这时候我们可以给类的属性和方法增加访问控制符,来控制类的属性和方法是否可以在类的外部被访问到。
- public
先以public为例子,给类的属性和方法增加public访问控制符:
// 类
class Person {
public name; // 类的属性
public eat() { // 类的方法
console.log('i am eating');
}
}
public是默认的访问控制符,不给属性和方法写访问控制符时,默认是public。
添加了public的属性和方法可以在类的内部和类的外部被访问到。
例子:
class Person {
public name;
public eat() {
console.log('i am eating');
console.log(name); // public修饰的属性在类的内部被访问到
}
}
var p1 = new Person();
p1.name = 'zhagnsan'; // public修饰的属性在类的外部被访问到
p1.eat(); // public修饰的方法在类的外部被访问到
- private:
给类的属性和方法增加private访问控制符:
class Person {
private name;
private eat() {
console.log('i am eating');
}
}
添加了private的属性和方法只能可以在类的内部被访问到,如果在类的外部访问就会报错。
例子:
class Person {
private name;
private eat() {
console.log('i am eating');
console.log(name); // private修饰的属性只能在类的内部被访问到
}
}
- protecred
给类的属性和方法增加protecred访问控制符:
class Person {
protected name;
protected eat() {
console.log('i am eating');
}
}
添加了protecred的属性和方法只能可以在类的内部和子类被访问到。
class Person {
protected name;
protected eat() {
console.log('i am eating');
console.log(name); // protected修饰的属性在类的内部被访问到
}
}
class Staff extends Person{
public doWork() {
this.eat(); // protected修饰的属性在子类被访问到
console.log('i am working');
}
}
var staff1 = new Staff();
staff1.doWork();
另外,
typescript可以在线编译,网址连接:
link.
https://www.tslang.cn/play/index.html