class Father{
// 实例属性 与在 constructor 里写 一样
address="Beijing";
// 私有属性(只能这个类里面用 外面 类和实例 都不能用) 暂时还在提案状态
#money=20000;
constructor(age){
this.name="yin";
this.age=age;
// 这里隐式 return 实例对象
}
// 实例.方法
sayName(){
console.log(this.name);
}
// 静态方法
static Fn(){
console.log("只能Father.Fn() 调用");
}
}
let f = new Father(18);
console.log(f); // {#money: 20000, address: "Beijing", name: "yin", age: 18}
f.sayName(); // yin
// 继承
class Son extends Father{
constructor(sonName,age){
super(age);
}
}
let s = new Son("son",5);
console.log(s); // {#money: 20000, address: "Beijing", name: "yin", age: 5}
类的访问类型 private私有 protected受保护的 public
class Father {
name: string="yv";
public age = 18; // 类内外部皆可访问 默认不加public也可
private money = 100; // 只允许类内部使用
protected gender = "male"; // 只允许类内部(或子类内部)使用
}
class Son extends Father{
public say(){
return this.gender;
}
}
constructor
class Father{
constructor(public name:string){}
}
// ↓ 相当于
// class Father {
// public name: string;
// constructor(name: string) {
// this.name = name;
// }
// }
class Son extends Father {
public age: number;
constructor(age: number) {
super("son");
// 子类只要有constructor 就必须有super()
this.age = age;
}
}