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

简介: ts重点学习109-枚举类型的兼容性
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;
}

image.png

相关文章
|
7月前
|
JavaScript 前端开发 编译器
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
135 0
|
7月前
|
编解码 JavaScript 前端开发
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
367 0
|
7月前
|
JavaScript
TypeScript【类的继承、访问修饰符、readonly 修饰符、存取器、实例方法与静态方法、实例属性与静态属性、静态属性、抽象类】(三)-全面详解(学习总结---从入门到深化)
TypeScript【类的继承、访问修饰符、readonly 修饰符、存取器、实例方法与静态方法、实例属性与静态属性、静态属性、抽象类】(三)-全面详解(学习总结---从入门到深化)
70 0
|
3月前
|
JavaScript
typeScript基础(1)_原始数据类型学习
本文介绍了TypeScript中的原始数据类型,包括布尔型、数值型、字符串型、`void`、`null`和`undefined`,并展示了如何在TypeScript中声明和使用这些类型。同时,还介绍了如何通过`tsc`命令编译TypeScript文件。
55 4
|
2月前
|
JavaScript 索引
TypeScript(TS)安装指南与基础教程学习全攻略(二)
TypeScript(TS)安装指南与基础教程学习全攻略(二)
59 0
|
2月前
|
JavaScript 前端开发 安全
TypeScript(TS)安装指南与基础教程学习全攻略(一)
TypeScript(TS)安装指南与基础教程学习全攻略(一)
31 0
|
5月前
|
JavaScript 前端开发 安全
如何学习typescript?
【7月更文挑战第9天】1. 了解其为JavaScript超集,增加类型系统和ES6特性,提升代码安全性和效率。 2. 安装 TypeScript 全局 (`npm install -g typescript`),用`tsc -v`验证,或尝试在线的TypeScript Playground。 3. 学习类型注解、基础类型(如number、string、boolean等)、any与unknown,接口和类。 4. 探索高级特性,如泛型、模块&命名空间、装饰器。 5. 实践中巩固知识,如做小项目(如用React或Vue),阅读官方文档,参与社区讨论。持续编码和实践是关键。
42 0
|
7月前
|
JavaScript 前端开发 编译器
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(下)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
62 0
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(下)
|
7月前
|
JavaScript
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(上)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
79 0
|
7月前
|
JavaScript 前端开发 编译器
TypeScript【可选属性、只读属性、额外的属性检查、函数类型、类类型、继承接口】(四)-全面详解(学习总结---从入门到深化)
TypeScript【可选属性、只读属性、额外的属性检查、函数类型、类类型、继承接口】(四)-全面详解(学习总结---从入门到深化)
78 0
下一篇
DataWorks