ts4抽象类


typesctipt抽象类

// 抽象类

abstract class Person {
  // 抽象类的内容并不确定,因此不写大括号
  abstract hobby()
}

// 所有继承自抽象类的派生类,必须包含抽象类的方法
class Juge extends Person{
  hobby(){
    return '深渊疲劳'
  }
}
class Niuheng extends Person{
  hobby(){
    return '代码使我快乐'
  }
}
class Haoge extends Person{
  hobby(){
    return '螺蛳粉'
  }
}

枚举


// 有时我们会用不同的flag  区分在不同的时候拿不同的参数,调接口时用flag不同的值区分调用哪个接口 ,等等。。。

// 我一般会用数组的形式,但这样要去一个一个订对,非常麻烦。

let addOrEdit = ['add', 'edit']

// 组件
// ... await  
// getinitData(addOrEdit[0])

// request.js 接口请求文件
// const getinitData = (flag) {
// ...
//   flag === addOrEdit[0] ? oneApi : twoApi
// ..
// }
// 据说这个是初级的写法

function getHobby(value: number) {
  if (value === 0) {
    return '下象棋'
  } else if (value === 1) {
    return '画画'
  } else if (value === 2) {
    return '追剧'
  } else if (value === 3) {
    return '看纪录片'
  }
}

function getHobby(value:number) {
  switch (value) {
    case 0:
      return '下象棋'
    case 1:
      return '画画'
    case 2:
      return '追剧'
    case 3:
      return '看纪录片'
    default:
      break;
  }
}

// 中级的写法

const Hobbys = {
  ChineseCheess: 0,
  Draw: 1,
  Moves: 2,
  Documentary: 3
}

function getHobby(value: number) {
  if (value === Hobbys.ChineseCheess) {
    return '下象棋'
  } else if (value === Hobbys.Draw) {
    return '画画'
  } else if (value === Hobbys.Moves) {
    return '追剧'
  } else if (value === Hobbys.Documentary) {
    return '看纪录片'
  }
}
// 高级的写法
enum Hobbys {
  ChineseCheess, // 0  此处也可以改写 ChineseCheess = 1, 后面的值均会因为这个值的改变而改变
  Draw,          // 1
  Moves,         // 2
  Documentary    // 3
}

// 通过下标反查
// 也可以用这种方法判断 flag

console.log('Hobbys[0]', Hobbys[0]); // ChineseCheess
console.log('type',typeof Hobbys[0]); // string

function getHobby(value: number) {
  if (value === Hobbys.ChineseCheess) {
    return '下象棋'
  } else if (value === Hobbys.Draw) {
    return '画画'
  } else if (value === Hobbys.Moves) {
    return '追剧'
  } else if (value === Hobbys.Documentary) {
    return '看纪录片'
  }
}

console.log('getHobby(1)', getHobby(1));

文章作者: KarlFranz
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 reprint policy. If reproduced, please indicate source KarlFranz !
评论
  目录