ts重点学习109-枚举类型的兼容性
  TEZNKK3IfmPf 2023年11月14日 18 0
export default {}

// 1.数字枚举
/*
注意点: 1.数字枚举的取值可以是字面量, 也可以是常量, 也可以是计算的结果
2.如果采用字面量对第一个成员进行赋值,下面的成员会自动递增
3.如果采用常量或计算结果进行赋值,则下面的成员也必须初始化
*/
// enum Gender {
// Male,
// Female
// }

// console.log(Gender.Male); // 0
// console.log(Gender.Female); // 1
// console.log(Gender[0]); // Male

// const val = 100;
// const num = () => 200;

// enum Gender {
// // Male = 1,
// // Female
// Male = val,
// Female = num()
// }

// console.log(Gender.Male); // 100
// console.log(Gender.Female); // 200


// 2.字符串枚举
/*
1.如果采用字面量对第一个成员进行赋值,下面的成员也必须赋值
2.采用[index]的形式不能获取到内容,需要传入[key]
3.字符串枚举不能使用常量或者计算结果给枚举值赋值
4.它可以使用内部的其它枚举值来赋值
*/
enum Direction {
up = "UP",
down = "DOWN"
}

// console.log(Direction.up); // UP
// console.log(Direction.down); // DOWN
// console.log(Direction[0]); // undefined
// console.log(Direction["up"]); // UP
// console.log(Direction["DOWN"]); // undefined

// const val = "金晨";
// const res = () => "王鸥";

// enum User {
// // a = val
// // b = res()
// c = "HTML",
// d = c
// }


// 3.异构枚举
// enum Gender {
// Male = 1,
// Female = "女"
// }

// console.log(Gender.Male); // 1
// console.log(Gender.Female); // 女
// console.log(Gender[0]); // undefined
// console.log(Gender["女"]); // undefined
// console.log(Gender["Male"]); // 1


// 4.把枚举成员可以当做类型来使用
enum Gender {
Male,
Female
}

interface ITestInterface {
age: Gender // age: (Gender.Male | Gender.Female)
}

class Person implements ITestInterface {
age: Gender.Female = 1;
}

ts重点学习109-枚举类型的兼容性

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   43   0   0 ts
  TEZNKK3IfmPf   2023年11月14日   29   0   0 声明ts
  TEZNKK3IfmPf   2023年11月14日   23   0   0 ts
  TEZNKK3IfmPf   2023年11月14日   53   0   0 ts
TEZNKK3IfmPf