/**
* 联合类型:Union,一个变量同时支持多个类型,中间用|竖线分隔
* 字面量类型:literal,明确取值的数据类型
*/
// 联合类型
let union: string | number
union = 'abc'
union = 1024
union = true // 报错
let union2: number | string | boolean | string[]
// 要实现的功能:输入字符串时进行连接,输入数字时进行相加
// 联合类型+字面量类型应用
function merge(
n1: number | string,
n2: number | string,
resultType: 'as-string' | 'as-number') {
if (resultType === 'as-string') {
return n1.toString() + n2.toString()
}
if (typeof n1 === 'string' || typeof n2 === 'string') {
return n1.toString() + n2.toString()
} else {
return n1 + n2
}
}
let mergeNumber = merge(1, 3, 'as-number') // 把数字当成字符串进行连接
let mergeNumber2 = merge(1, 3, 'as-string')
let mergeString = merge('hello', 'world', 'as-string')
console.log(mergeNumber, 'mergeNumber'); // 4
console.log(mergeNumber2, 'mergeNumber2'); // 13
console.log(mergeString, 'mergeString'); // helloworld
// 字面量类型:明确取值的类型
let union3: 0 | 1 | 2
union3 = 0
union3 = 1.3 // 报错,只能在这3个数中取值
TypeScript——TypeScript中的联合类型Union、字面量类型literal
最新推荐文章于 2024-02-18 16:50:00 发布