创建一个class类
class Person {
age:number //没有值但是有类型
name="小明" //有默认值,类型推断是string
constructor(age:number,name:string){//构造函数没有返回值,返回值不需要加类型
this.age = age
this.name= name
}
//实例方法
change(num:number):void{
}
}
const p=new Person
类的继承
通过 extends 继承
class Animal{
move():void{
console.log('走路')
}
}
class Dog extends Animal{
name='小狗'
}
const d=new Dog()
d.move()
通过 implements 接口继承
interface Singale{ //接口
sing():void
}
class person implements Singale{
sing(){
console.log('走路')
}
move():void{
console.log('走路')
}
}
类的修饰符
可见性修饰符:public(公有的,默认)、protected(受保护的,在所在类和子类中,非实例对象)、private(私有的)
class Animal{
protected move():void{
console.log('走路')
}
change():void{ //默认public
console.log('改变')
}
private jump:void{ //私有的,只能在当前类中使用
console.log('跳')
}
}
class Dog extends Animal{
name='小狗'
this.move()//可以访问
this.change()//可以访问
}
const a=new Animal()
const d=new Dog()
a.move()//报错
d.move()//报错
d.change()//可以访问
只读修饰符 readonly
只允许在constructor中改变修饰属性,其他地方一律不允许修改;readonly 只能修饰属性不能修饰方法;
readonly 修饰的属性没有类型的时候,则变成字面量类型,任何地方不能被改变。
readonly 也可以在接口或{}中使用
interface IPerson {
readonly name:string
}
class Person implements IPerson {
readonly age:number=18
constructor(age:number){
this.age=age
}
}
标签:name,TS,age,move,高级,class,void,log
From: https://blog.csdn.net/qu19666/article/details/142997695