ts枚举可以继承吗?
enum nba{ kobe,
tracy,
allen,
}
有一个枚举,现在想在这个枚举的基础上扩展,能继承吗?
enum lanqiu extends nba{ yao,
yi
}
回答:
方法一:
使用枚举同名是在合并
enum Color { Red,
Green,
Blue
}
enum Color {
Yellow = 3,
Purple
}
注意:
- 枚举类型成员不能重名,成员值可以相同
方法二:
使用 declare
关键字,是在扩展一个已有的枚举类型
enum Color { Red,
Green,
Blue
}
declare enum Color {
Yellow = 3,
Purple
}
Color.Red // 0
Color.Yellow // 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