请分别说明 TypeScript、ESLint、Prettier 和 Husky 在保障项目编码规范中各自承担的角色与作用。
考察说明
考查对前端工程化工具链中四类规范化工具职责边界的理解,以及能否清晰区分静态类型检查、代码质量检查、代码格式化与 Git 钩子管理。
回答思路
- 【回答框架 1】TypeScript 是 JavaScript 的超集,核心价值是静态类型检查。它在编译阶段捕获类型错误,约束变量、函数参数和返回值的类型,提升代码可读性和可维护性,减少运行时错误。它关注的是类型层面的正确性,属于编译期保障。
- 【回答框架 2】ESLint 是代码质量检查工具,基于可配置规则集对代码进行静态分析,发现未使用变量、隐式类型转换、复杂度过高等逻辑或风格问题。它能与 TypeScript 结合使用,通过解析器支持类型感知规则,但更侧重于语法和逻辑层面的规范。
- 【回答框架 3】Prettier 负责代码格式化,它基于预设规则自动统一代码风格,如缩进、引号、分号、行宽等。Prettier 不关心逻辑正确性,只关注格式一致性,减少团队因风格差异产生的争议。它与 ESLint 存在规则重叠,通常配置时避免冲突。
- 【回答框架 4】Husky 是 Git 钩子管理工具,用于在提交或推送等 Git 事件时执行脚本。项目中常配合 lint-staged,在提交前对暂存文件运行 ESLint 和 Prettier 检查,阻止不符合规范的代码进入版本库,实现质量门禁。
- 【回答框架 5】四者各司其职:TypeScript 管类型安全,ESLint 管代码质量,Prettier 管格式统一,Husky 在 Git 层面强制执行。它们在流程上相互衔接,但解决问题域不同,不应混淆。
- 【关键点 1】TypeScript 做静态类型检查,是编译期保障。
- 【关键点 2】ESLint 检查代码质量和潜在逻辑问题,属于静态分析。
- 【关键点 3】Prettier 统一代码格式,不涉及逻辑。
- 【关键点 4】Husky 配合 lint-staged 在 Git 提交前执行检查。
- 【关键点 5】四者互补,共同维护项目规范。
- 【易错点 1】误将 Prettier 当作代码质量检查工具,它只管格式。
- 【易错点 2】忽略 ESLint 与 Prettier 的规则冲突,需通过配置协调。
- 【易错点 3】Husky 仅执行钩子脚本,若脚本本身失败可能被绕过,需在 CI 上补充检查。