定义与继承
class Person2 {
name: string = "ting";
getName() {
return this.name;
}
}
const person2 = new Person2();
console.log(person2.getName());
class Teacher2 extends Person2 {
getName() {
return super.getName() + "tingting";
}
getTeacherName() {
return "fuq";
}
}
const teacher2 = new Teacher2();
console.log(teacher2.getName());
console.log(teacher2.getTeacherName());
类中的访问类型和构造器
class Person4 {
private name: string = "";
sayHi() {
this.name;
console.log("private,hi");
}
}
class Person5 {
protected name: string = "123";
sayHi() {
this.name;
console.log("protected,hi");
}
}
class Tearcher extends Person5 {
public sayhello() {
console.log("protected,hello", this.name);
}
}
let tea = new Tearcher();
tea.sayhello();
class Person3 {
name: string = "";
sayHi() {
console.log("hi");
}
}
const person3 = new Person3();
person3.name = "ting";
console.log(person3.name);
console.log(person3.sayHi());
class Person6 {
constructor(name: string) {
this.name = name;
}
public name: string = "";
}
const person6 = new Person6("ting");
console.log(person6.name);
class Person7 {
constructor(public name: string) {}
}
const person7 = new Person7("ting");
console.log(person7.name);
class Person8 {
constructor(public name: string) {}
}
class Teacher8 extends Person8 {
constructor(name: string, age: number) {
super(name);
}
}
const teacher = new Teacher8("ting", 28);
console.log(teacher.name);
静态设置
class Person9 {
constructor(private _name: string) {}
get name() {
return this._name;
}
set name(name: string) {
const realName = name.split(" ")[0];
this._name = realName;
}
}
const person9 = new Person9("ting");
console.log(person9.name);
person9.name = "zss tt";
console.log(person9.name);
class Demo {
private static instance: Demo;
private constructor() {}
static getInstance() {
if (!this.instance) {
this.instance = new Demo();
}
return this.instance;
}
}
抽象类
class Person10 {
constructor(public readonly name: string) {}
}
const person10 = new Person10("ting");
console.log(person10.name);
abstract class Geom {
abstract higths: number;
widths: number = -1;
getType() {
return "Geom";
}
abstract getArea(): number;
}
class Cirtcle extends Geom {
higths: number = -1;
getArea(): number {
return 123;
}
}
interface Person11 {
name: string;
}
interface Teacher extends Person11 {
age: number;
}
interface Student extends Person11 {
class: string;
}
const teacher4 = {
name: "ting",
age: 33,
};
const student = {
name: "zheng",
class: "一班",
};
const getUserInfo = (user: Person11) => {
console.log(user.name);
};
getUserInfo(teacher4);
getUserInfo(student);