七、typescript枚举、类与接口

七,枚举

数字枚举:

enum num{
    up=1,  //初始化为1  不写就是从0开始
    down,
    left,
    right
  }
  //up初始化为1,其余成员会从1开始增长,down为2,left 3,right 4
  
  num[2]  //down

字符串枚举:

  enum str{
    up='up',
    left='left'
  }

异构枚举:
枚举可混合字符串和数字成员,一般不这么做

enum allenum{
    no=0.
    yes='yes'
 }
 

计算和常量成员:
每个枚举成员都带有一个值,它可以是常量或者是计算出来的
枚举第一个成员没有初始化器,赋0

 enum E{ X }

不带有初始化器它之前的枚举成员是个数字常量,当前枚举成员值为它上一个枚举成员的值+1

 enum  E1{ X , Y , Z}
 
 enum E2{ A=1, B , C }  //b 2    c3

常数项和计算所得项:

 enum Color { Red, Pink, Blue = 'blue'.length }  //ok
 'blue'.length 就是一个计算所得项
 
 enum Color { Red =' red'.length , Pink} //error  后面有未手动赋值的项 会报错
 

常数枚举:

 const enum Dir{
    Up,
    Down,
    Left,
    Right
 }
 
 let dir = [Dir.Up,dir.Down,Dir.Left,Dir.Right]  //0 1 2 3
 

外部枚举:

declare const enum Dir{
    Up,
    Down
    
   }
 

八,类与接口

// implement,  多个接口逗号分隔
 interface Alarm{
    alert():void
 }
 class Door{}
 interface Light(){
    on():void
 }
 class SecuityDoor extends Door implement Alarm{
    alert(){
        console.log('alert1')
    }
 }
 
 class Car implement Alarm{
    console.log('car alert')
 }

//多个接口逗号分隔

 class Car implement Alarm,Light{
    alert(){}
    on(){}
 }
 

接口继承接口:

interface A{
    alert():void
 }
 interface B extends A{
    on():void
 }

接口继承类:

class Point{
    x:number;
    y:number;
    constructor(x:number,y:number){
        this.x= x;
        this.y =y
    }
}
interface Point2 extends Point {
    z:number
}
let point1:Point2 = {x:1,y:2,z:3}

你可能感兴趣的:(typescript,typescript,javascript,前端)