联合类型:为变量指定多种类型,类型用 | 间隔,此变量可以为联合类型中任何一种类型
let union1: number | string | boolean = 1;
字面量类型: 指定变量类型及取值范围,可以组合联合类型一块使用;
let union2:1 | 'str' | [1,2,3] = '字面量类型'
Union联合类型
一个变量可以支持两个或者几个不同的类型,用竖线分割
let union: string | number
let union2 : number | string | boolean | string[]

Literal字面量类型,表示固定值(字面意义)
let union3: 0 | 1 | 2
let literal : 1 | "2" | true | [1,2,3,4]

let union: string | number
union = 2 ;
union = "sdasadjkas" ;
literal类似与枚举类型
联合类型
一个变量支持一个、两个或几个不同的类型,使用|分割

字面量类型
let unionA:0|1|2
let unionB:1|“2”|true|[1,2,4]
number boolean string数据类型定义 也可以直接写数据 默认定义数据类型
联合类型Union
let union: string | number = 3; // 同时支持string和number
字面量类型Literal类型
let literal1:1 | '2' | true | [1, 2, 3, 4] ;
联合数据类型噢噢噢噢

// 联合(Union)与文献[Literal]类型
let union: string | number
union = 2;
union = "uuhkd";
union = true; // 报错
let union2: number | string | boolean | string[];
const merge = (n1: number | string, n2: number | string, resultType: "as-number" | "as-string" ) => {
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(2, 5, "as-number");
let mergeNumber = merge(2, 5, "as-string");
let mergeString = merge("hello", "world", "as-string");
// 字面量类型(literal)
let union3: 0 | 1 | 2
union3 = 1;
联合类型(union)
let union: string | number | boolean | string[] = 5
let union: 0 | 1 | 2 //不仅联合类型确定了,值也确定了
字面量类型(literal)
let literal : 1 || '2' || true || [1,2,3]
联合类型 Union
let 变量:类型1| 类型2..
字面量类型 literal
let 变量:值1| 值2..
// union 联合类型
let union : string|number
union = 2; || union = "2";
// literal 字面量类型
let literal : 1|"2"|true|[1]
联合类型:一个变量可以同时支持两个或多个不同的类型
let union : string | number
union = 2;
union = 'sdfedf';
union = true; 报错
let union2 : number | string | boolean | string[]
function merge(n1: number | string, n2: number | string) {
if (typeof n1 === 'string' || typeof n2 === 'string')
return n1.toString() + n2.toString;
else
return n1 + n2;
}
let mergeNumber = merge(1,3); //4
let mergeString = merge('2','4'); //24
let mergeString = merge('hello', 2); //hello2

字面量类型literal