白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

TypeScript-面试-any-unknown与never

2026年10月16日·Admin·1 次浏览

面试题:any、unknown、never 区别?为什么推荐用 unknown?

any

  • 关闭类型检查:可赋给任意类型、任意操作,失去 TS 保护。
  • 仅适合渐进迁移或与遗留 JS 交界处,应最小范围使用。

unknown

  • 顶层安全类型:表示「不知道类型」,不能直接当具体类型用。
  • 使用前必须收窄:typeof、instanceof、类型谓词、as(谨慎)。
function f(x: unknown) {
  if (typeof x === "string") return x.toUpperCase()
}

面试答:替代 any 接收外部数据,配合校验库更稳。

never

  • 没有值的类型:抛错函数、 exhaustive switch 的剩余分支、[] 的元素类型等。
  • 用于穷尽检查:若 switch 未覆盖所有联合成员,在 default 里把参数标为 never 可编译期报错。

© 2025 My Blog. Built with Nuxt.js v4