TypeScript

入门预计上手 2-4 周

星团 编程语言

学习定位零前置,可直接入门→ TypeScript →ReactVue

岗位需求

2 核心 · 0 加分

在职岗位将其列为技能要求

核心岗位薪资带

8k-38k

核心要求岗位的月薪区间

需求趋势

上升 0稳定 1收缩 1

核心要求岗位的趋势分布

面试题库

高频真题 · 参考答案随题展开
1. any、unknown、never 三种类型有什么区别?

any 关闭类型检查,任意操作都被放行,本质是退出类型系统,会把错误推迟到运行时并污染调用方,只适合迁移期临时兜底。unknown 是类型安全的 any,任何值都可赋给它,但使用前必须收窄(typeof、instanceof、自定义守卫),强制处理不确定性,适合承接外部输入、JSON 解析与第三方边界。never 表示永不存在的值类型,函数抛异常或死循环返回 never,也是穷尽检查的工具:switch 判别联合末尾对 never 赋值可让编译器强制新增分支被处理。答题线索是「any 放弃检查、unknown 延迟检查、never 不可能发生」,并强调用 unknown 替代 any 是代码质量分水岭。

2. interface 与 type 别名的区别是什么?如何选择?

两者都能描述对象形状且都支持泛型,日常大量场景可互换。差异主要在:interface 可被 extends 继承、允许声明合并(同名接口自动合并,适合给 window 等全局对象扩属性、以及库的扩展点),而 type 用交叉类型实现组合且不能重名;type 能表达联合、元组、条件类型、映射类型与模板字面量类型等所有类型运算,interface 只能描述对象与函数形状。选型惯例是给对象、类实现与可扩展公共 API 用 interface,需要联合、工具类型与别名复用时用 type,团队统一即可。加分点:了解 interface 之间的 extends 与类型交叉 & 在冲突属性上的不同表现(继承报错而交叉得到 never),能说明声明合并对库作者是双刃剑。

3. 什么是结构化类型(structural typing)?

TypeScript 的类型兼容采用结构化比较而非名义标示:只要形状兼容即可赋值,变量名、声明位置无关。例如一个含 name 与 age 属性的对象可以直接赋给 interface Person,无需显式 implements。这与 Java、C# 等名义类型语言根本不同,也让鸭子类型获得了编译期保障。推论包括:多余属性检查只在对象字面量直接赋值时触发(防止拼写错误),函数参数双向协变的严格开关 strictFunctionTypes,以及「接口是对形状的描述而非身份」。实际工程中利用结构化类型可以轻松为第三方库类型做适配层,测试时用最小形状的假对象替代依赖,不必继承任何基类。能对比名义类型并说出双向兼容的坑即为优秀回答。

4. 什么是类型收窄与类型守卫?请举例说明。

收窄指编译器依据控制流分析把宽类型逐步细化为具体类型的过程。常见手段:typeof 判别原始类型、instanceof 判别类实例、in 操作符判别属性存在、判别联合的标签字面量比较,以及自定义守卫函数 is Fish。可辨识联合是最佳实践,如 type Shape 等于 Circle 或 Square 的联合,各自带 kind 标签,switch 之后每个分支类型自动确定。守卫失效的典型场景是把判断抽成普通函数或存进变量再判断,控制流分析无法穿透,需要显式谓词。答题时给出判别联合加穷尽检查(default 分支赋值 never)的完整例子,说明既消除强制断言又让新增分支编译报错,是最能体现代码质量的答案。

5. tsconfig 中 strict 严格模式包含哪些行为?

strict 是聚合开关,等价于同时开启若干检查:strictNullChecks 把 null 与 undefined 从所有类型中剥离,必须显式处理可空值,是最有价值的一项;noImplicitAny 禁止隐式 any,函数参数必须标注;strictFunctionTypes 让函数参数按逆变检查;strictBindCallApply、strictPropertyInitialization(类属性必须初始化)、noImplicitThis、useUnknownInCatchVariables(catch 变量为 unknown)等也包含在内。新项目应默认开启 strict,并在严格基础上再加 noUncheckedIndexedAccess(索引访问带 undefined)。旧项目迁移可分步:先开 noImplicitAny 再开 null 检查。能点出 strictNullChecks 消灭最多的空指针问题、以及 strict 只影响编译期不改变运行时行为,即为完整回答。

🔒 解锁完整面试题库与参考答案(Pro)

含高频追问与作答要点,系统准备面试。

官方文档

1 条

推荐教程

2 条

推荐课程

1 条

上手实践

2 条

🔒 完整前置链分析 + 逐岗位引用明细

本页已免费展示学习定位与市场聚合;Pro 深读补齐完整前置依赖链分析与逐岗位引用明细 (核心/加分与深度档、岗位画像)。

知识分享

社区经验 · 管理员审核后展示

暂无分享——第一个来聊聊你的经验和踩坑吧。

有经验想分享?登录后可提交你的知识分享,管理员审核通过后将署名展示。

难度档决定星等与难度分权重(入门 1 / 进阶 2 / 精通 3);学习资源由编辑部遴选并持续维护, 经验心得欢迎在上方「知识分享」区署名分享。