当前位置: 首页>后端>正文

Harmony学习(二)TS学习2

接口

1.1 接口定义
interface Person{
  name:string;//属性
  age:number;//属性
  sex?:string;//可空属性
  [propname:string]:any;//可选参数
  speak():string;//方法
}

可空参数在实现时可以不传参数,直接使用时返回为undefined,不会报错。

let person1={
  name:'Mr.Li',
  age:18,
  speak():string{return 'hello!'}}

可选参数,可自由设置,如下hat

let person1={
  name:'Mr.Li',
  age:18,
  sex:'男',
  hat:'black hat'
  speak():string{return 'hello!'}}
1.2使用接口作为参数预定义
const result = (person:Person)=>{
       conslose.log( 'name:${person},age:${person.age}${person.speak}')
}

可对多个参数的方法的进行抽离,简化代码。

1.3接口的继承与实现

接口的继承

interface Girl extends Person{
 dress():string;
}

类的实现

class SichuanGirl implements Girl{
 name:string;
  age:number;
  sex?:string;
  [propname:string]:any;
  speak():string{
      return "";
  }
  dress():string{
      return "" ;
 }
}

2.1 类的定义
class Student{
  //参数定义
   talk = 'Good moring!';
  //方法定义
  speak(){
    return this.talk;
  }
  //private参数
  private sex:string;
  //set与get
  set sex(value:string){
     this.age=age
  }
  get sex():string{
    return this.sex
  }
  //只读参数
  private readonly name:string;
  //protected参数
  protected proValue:string;
  //public参数
  public pubValue:string;
  //静态参数
  static className:string;
  //静态方法
  static speak(){
    console.log('static fuction');
 }
}
2.2类的继承
class Person{
  public name:string;
  protected age:number;
  //构造方法
  constructor(age:number){
      this.age = age ;
  }
 public speak(){
    console.log('Hello!');
 }
}
class teacher extend Person{
 
  private sex:string;
 
  set sex(value:string){
     this.age=age;
  }
  get sex():string{
    return this.sex;
  }
//使用父类的构造方法:super.xxxx
 constructor(sex:string){
      super(18);
      this.sex= sex;
  }

 public speak(){
    super.speak();
    console.log('I am a teacher!');
 }

  private readonly name:string;

  protected proValue:string;

  public pubValue:string;

  static className:string;

  static speak(){
    console.log('static fuction');
 }

}
2.3类的构造
let person=new Person(18);

抽象类

abstract class Anim{
  //抽象参数
  abstract params:number;
  //抽象方法
  abstract eat():void;
  //普通方法 
  run(){
  console.log("run with 4 foots")  
    }
}
class Dog extends Anim{
  params:number;
  eat():void{
  console.log("eat meat")
  }
}

实现抽象类必须实现 Harmony学习(二)TS学习2,\color{red}{抽象方法},第1张Harmony学习(二)TS学习2,\color{red}{抽象参数},第2张.


https://www.xamrdz.com/backend/3p71935350.html

相关文章: