一、前言
上篇博客简单介绍了一下什么是 TypeScript ,简单总结了一下 TypeScript 与 JavaScript 的区别,还总结了十一个TypeScript 的类型,今天继续讲讲 TypeScript 的其他类型。
二、数据类型
上篇博客总结了原始类型、联合类型、数组类型、自定义类型-别名、函数类型、void、函数-可选参数、对象类型 、接口、元组、字面量类型,TypeScript 除了这些还有许多类型,接下来一一讲解。
1、枚举
enum,枚举。它用来描述一个值,该值只能是 一组命名常量 中的一个
没有type之前,用枚举比较多,现在用的少了。枚举的功能类似于字面量类型+联合类型组合的功能,也可以表示一组明确的可选值
格式: enum 枚举名 { 可取值1,可取值2,.. }
说明:
- 使用
enum
关键字定义枚举 - 一般约定首字符大写
使用格式: 枚举名.可取值
示例
// 定义枚举类型
enum Direction { Up, Down, Left, Right }
// 使用枚举类型
function changeDirection(direction: Direction) {
console.log(direction)
}
// 调用函数时,需要应该传入:枚举 Direction 成员的任意一个
// 类似于 JS 中的对象,直接通过 点(.)语法 访问枚举的成员
changeDirection(Direction.Up)
- 约定枚举名称以大写字母开头
- 枚举中的多个值之间通过
,
(逗号)分隔 - 定义好枚举后,直接使用枚举名称作为类型注解
2、any 类型
any: 任意的。当类型设置为 any 时,就取消了类型的限制。
let obj: any = { x: 0 }
obj.bar = 100
obj()
const n: number = obj
以上操作都不会有任何类型错误提示,即使可能存在错误(编译时不报错,可是运行时会报错)
使用any的场景
-
函数就是不挑类型。 例如,
console.log()
; 定义一个函数,输入任意类型的数据,返回该数据类型