function isString(value: string | number): value is string {
return typeof value ==='string';
}
// 类型保护在这种场景下的作用:
// 1. 在函数调用处,通过类型保护函数 `isString`,TypeScript 编译器能够根据返回值,
// 缩小联合类型 `string | number` 的范围。如果 `isString` 返回 `true`,则在后续代码中,
// 编译器会认为该值的类型为 `string`;如果返回 `false`,则认为该值类型为 `number`。
// 2. 这有助于在编写代码时进行更准确的类型检查,避免类型错误,提高代码的安全性和可维护性。
// 3. 例如:
let val: string | number = "hello";
if (isString(val)) {
console.log(val.length); // 此时编译器知道 `val` 是 `string` 类型,可安全访问 `length` 属性
} else {
console.log(val.toFixed(2)); // 此时编译器知道 `val` 是 `number` 类型,可安全访问 `toFixed` 方法
}