如何将 unknown 类型指定为一个更具体的类型?
参考答案:
- 使用 typeof 进行类型判断(这些缩小类型范围的技术都有助于TS基于控制流程下的类型分析)
ts
function unknownToString(value: unknown): string {
if (typeof value === "string") {
return value;
}
return String(value);
}- 对 unknown 类型使用类型断言
要强制编译器信任类型为 unknown 的值为给定类型,则可以使用类型断言:
ts
const value: unknown = "Hello World";
const foo: string = value; // Error
const bar: string = value as string; // OK断言错了时语法能通过检测,但是运行的时候就会报错了!
ts
const value: unknown = "Hello World";
const bar: number = value as number; // runtime Error题目要点:
作答思路:
在TypeScript中,可以将unknown类型指定为一个更具体的类型,通过类型断言(Type Assertion)或类型保护(Type Guard)来实现。
类型断言:
typescriptlet value: unknown; if (typeof value === 'string') { value = 'hello'; }类型保护:
typescriptlet value: unknown; if (typeof value === 'string') { value = 'hello'; } else if (typeof value === 'number') { value = 42; }
考察要点:
- 类型断言:理解如何使用类型断言将
unknown类型指定为一个更具体的类型。 - 类型保护:理解如何使用类型保护来安全地处理
unknown类型。