TypeScript 联合类型
TypeScript中的联合类型(Union Types)可以用来定义一个类型可以是多个类型中的任意一个的情况。这种概念在JavaScript中也存在,通常使用|
来表示。
下面是一个简单的例子:
function printId(id: number | string) {
console.log("ID is: " + id);
}
printId(101); // Output: ID is: 101
printId("202"); // Output: ID is: 202
在上面的例子中,id
参数可以是number
或string
类型中的任何一个。这意味着你可以调用printId
函数,传入一个数字或者字符串作为参数。
联合类型的使用不仅仅局限于参数的定义,还可以用于变量、返回值类型等等。
let userId: string | null = getUserID();
function getUserID(): string | null {
// Code to get userID
}
在上面的示例中,userId
变量可以存储一个字符串或者null
值。同样地,getUserID
函数也可以返回一个字符串或者null
值。
联合类型对于可以使用多种不同类型的值的变量和函数非常有用。但是需要注意的是,在尝试使用联合类型的变量或函数时,我们必须确保正确地使用它们。
function printUserName(user: { name: string } | null) {
if (user !== null) {
console.log(user.name);
}
}
在上面的例子中,我们定义了一个printUserName
函数,它的参数user
可以是一个具有name
属性的对象或者null
值。但是,在函数体内我们需要在执行读取user.name
之前先检查user
是否为null
,否则就会抛出一个运行时错误。
使用联合类型时,我们需要养成良好的编码习惯,遵循TypeScript提供的类型检查规则,确保我们的代码更加健壮。