字面量类型介绍
知道:什么是字面量类型
-
js 字面量如:
18
'jack'
['a']
{age: 10}
等等。 -
使用
js字面量
作为变量类型,这种类型就是字面量类型。
// : 'jack' 是字面量类型
let name: 'jack' = 'jack';
// : 18 是字面量类型
let age: 18 = 18;
// 报错:不能将类型“19”分配给类型“18”
age = 19;
思考:这两个变量的类型是什么?
let str1 = 'Hello TS';
const str2 = 'Hello TS';
-
通过类型推断发现,str1 类型是
string
, str2 类型是Hello TS
-
原因:
str2
是const
声明的,值只能是Hello TS
,所以类型只能是Hello TS
字面量类型应用
知道:字面量类型的应用场景
例如:性别只能是 男 和 女,不会出现其他值。
// let gender = '男'
// gender = '女'
// ------------------------
type Gender = '男' | '女'
let gender: Gender = '男'
gender = '女'
小结:
-
字面量类型配合联合类型来使用,表示:一组明确的可选的值
例子:
// 使用自定义类型:
type Direction = 'up' | 'down' | 'left' | 'right'
function changeDirection(direction: Direction) {
console.log(direction)
}
// 调用函数时,会有类型提示:
changeDirection('up')
-
解释:参数
direction
的值只能是up/down/left/right
中的任意一个 -
优势:相比于
string
类型,使用字面量类型更加精确、严谨