ts枚举可以继承吗?

enum nba{

kobe,

tracy,

allen,

}

有一个枚举,现在想在这个枚举的基础上扩展,能继承吗?

enum lanqiu extends nba{

yao,

yi

}


回答:

方法一:

使用枚举同名是在合并

enum Color {

Red,

Green,

Blue

}

enum Color {

Yellow = 3,

Purple

}

注意:

  1. 枚举类型成员不能重名,成员值可以相同

方法二:

使用 declare 关键字,是在扩展一个已有的枚举类型

enum Color {

Red,

Green,

Blue

}

declare enum Color {

Yellow = 3,

Purple

}

Color.Red // 0

Color.Yellow // 3

注意:

  1. 必须为新的成员显示指定指定一个值,不能使用默认
  2. 扩展枚举类型只能在全局作用域中使用,不能在模块中使用
  3. 扩展枚举类型只能添加新的成员,不能修改已有成员的值或名称


回答:

试试这个方法

enum Nba {

Kobe,

Tracy,

Allen

}

enum Lanqiu {

Yao = Nba.Allen + 1,

Yi

}

// 使用扩展后的枚举

console.log(Lanqiu.Yao); // 3

console.log(Lanqiu.Yi); // 4

如果是字符串的话:

enum Nba {

Kobe = 'kobe',

Tracy = 'tracy',

Allen = 'allen'

}

enum Lanqiu {

Yao = 'yao',

Yi = 'yi'

}

const MergedLanqiu = { ...Nba, ...Lanqiu };

// 使用扩展后的对象

console.log(MergedLanqiu.Kobe); // 'kobe'

console.log(MergedLanqiu.Yao); // 'yao'

以上是 ts枚举可以继承吗? 的全部内容, 来源链接: utcz.com/p/934076.html

回到顶部