Typescript小白入门 怎么使用类

使用类的一个例子

class Greeter{
	greeting: string;
	constructor(greet: string){
		this.greeting = greet;
	}
	greet(){
		return "Hello! " + this.greeting;
	}
}

这个类中含有一个属性,一个构造函数和一个方法。引用任何一个类成员时都需要使用this
类定义会创建两个东西—— 类的实例类型和一个构造函数,因为类可以创造出类型,所以你可以在使用接口的地方使用类。

class Point {
    x: number;
    y: number;
}

interface Point3d extends Point {
    z: number;
}

let point3d: Point3d = {x: 1, y: 2, z: 3};

类的继承

使用extends关键字创建派生类,派生类继承父类的属性和方法。派生类通常也被叫做子类。

class animal{
	name: string;
	constructor(vname: string){
		this.name = vname;
	}
	move(distance: number){
		console.log(`${this.name} move ${distance} meters`);
	}
}

class Dog extens animal{
	constructor(name: string){
		super(name);
	}
	move(distance: number){
		console.log("Dog moving...");
		super.move(distance);
	}
}

class Horse extens animal{
	constructor(name: string){
		super(name);
	}
	move(distance: number){
		console.log("Horse moving...");
		super.move(distance);
	}
}

pubulic、private、protected

public

类中的成员默认都为public,当然你也可以显式声明。

private

当成员被标记为private时,它将不能在类的外部被访问。

protected

当成员被标记为protected时,它不能够在类的外部被访问,但是可以在派生类中被访问。

readonly修饰符

在类中,你可以使用readonly修饰符对属性进行修饰,被修饰的属性只能在声明时或者在构造函数中被访问。

getters/setters存取器

getters/setters存取器可以截取对对象成员的访问。
只带有get不带有set的类,其成员属性会被认为是只读的。

let password = 'right';

class employee{
	private _fullname: string;
	get fullname():string {
		return this.fullname;
	}
	set fullname(vfullname: string){
		if(password && password == 'right'){
			this.fullname = vfullname;
		}else{
			console.log('Error');	
		}
	}
}

let employee = new Employee();
employee.fullname = 'Dane DeHaan';
if(employee.fullname){
	alert(employee.fullname);
}

静态属性

使用static关键字创建静态成员,这些静态属性存在于类的本身而不是类的实例上。每次访问静态属性时,在前面加上类名,并使用.来衔接两者。

抽象类

使用abstract关键字声明抽象类和抽象方法。抽象类中有抽象成员和非抽象成员,非抽象成员可以有具体的实现细节,而抽象成员必须在派生类中实现。

小芝士:

prototype是JS中函数对象的一个属性,每个函数都有一个prototype属性。当使用这个函数作为构造函数来实例化一个对象时,这些对象实例可以继承构造函数prototype上的一些属性和方法。这是JS实现继承机制的一种重要方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值