// 入参可能是这两种类型
type Params = { id: string } | { name: string }
function (params: Params) {
// 变量 a 可能是这两种类型
let a : A | B
// 期望
// 入参为 { id: string } 将变量a 类型确定为 A
// 入参为 { name: string } 将变量 a 类型确定为 B
// 例如,当入参为 { id: string } 时,
// 代码执行到这里,a 可以调用 A 类型的一些属性和方法
}
看上图,考虑:直接通过
in
关键字 做类型保护。看下图继续理解下:
