any、unknown 和 never 分别适合什么场景?
分清绕过检查、未知输入和不可能出现的值。
参考答案
any会绕过大量类型检查,适合迁移时的临时边界,但会削弱安全性。unknown可以接收任意值,使用前必须做类型收窄,适合外部 JSON 等未知输入。never表示不可能出现的值,常用于永不正常返回的函数和穷尽性检查。
TypeScript
function assertNever(value: never): never {
throw new Error(`未预期的值: ${value}`);
}
类型声明不会验证运行时数据。即使把接口响应断言为某个类型,仍需要在不可信边界进行实际校验。