面试题答案
一键面试1. 代码风格一致性
- 使用 Prettier:
- 安装:在项目根目录通过
npm install --save-dev prettier
安装。 - 配置:创建
.prettierrc.json
文件,在其中定义代码格式化规则,例如:
- 安装:在项目根目录通过
{
"semi": true,
"singleQuote": true,
"trailingComma": "es5"
}
- 集成到开发流程:在
package.json
的scripts
中添加格式化脚本,如"format": "prettier --write ."
,这样开发者可以通过npm run format
命令自动格式化代码。 - 结合 ESLint:
- 安装:
npm install --save-dev eslint eslint-config-prettier eslint-plugin-prettier
。 - 配置:创建
.eslintrc.json
文件,配置 ESLint 规则。eslint-config-prettier
用于关闭 ESLint 中与 Prettier 冲突的规则,eslint-plugin-prettier
将 Prettier 作为 ESLint 规则运行,把 Prettier 的错误作为 ESLint 的错误。例如:
- 安装:
{
"extends": ["plugin:prettier/recommended"]
}
- 使用:在
package.json
的scripts
中添加"lint": "eslint ."
,开发者可通过npm run lint
检查代码风格问题。
2. 类型使用规范
- 启用 TypeScript strict 模式:在
tsconfig.json
中设置"strict": true
,这将启用一系列严格的类型检查规则,如严格的空值检查、严格的函数参数类型检查等,帮助捕获潜在的类型错误。 - 编写类型定义文件:对于项目中使用的第三方库或自定义模块,如果没有类型定义,编写
.d.ts
文件来明确类型,提高代码的可维护性和可读性。 - 使用 ESLint 类型检查插件:安装
@typescript-eslint/parser
和@typescript-eslint/eslint-plugin
,在.eslintrc.json
中配置:
{
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": ["plugin:@typescript-eslint/recommended"]
}
这些插件可以对 TypeScript 代码进行更深入的类型相关的 lint 检查。
3. 代码质量
- 单元测试:使用测试框架如 Jest 进行单元测试。安装
jest
和@types/jest
,在package.json
中配置测试脚本"test": "jest"
。编写测试用例,确保每个函数和模块的功能正确性。例如,对于一个add
函数:
// add.ts
export const add = (a: number, b: number) => a + b;
// add.test.ts
import { add } from './add';
test('adds two numbers', () => {
expect(add(1, 2)).toBe(3);
});
- 代码审查:利用代码托管平台(如 GitHub、GitLab)的 Pull Request 功能,要求开发者在合并代码前进行代码审查,确保代码符合项目的编码规范、逻辑正确且易于维护。
4. 自动化流程
- Git Hooks:使用 Husky 来管理 Git Hooks。安装
husky
,在package.json
中配置:
{
"husky": {
"hooks": {
"pre-commit": "npm run lint && npm run format"
}
}
}
这样在每次提交代码前,会自动运行 lint 和格式化命令,确保提交的代码符合规范。
- 持续集成(CI):使用 CI 工具如 GitHub Actions、GitLab CI/CD 等。以 GitHub Actions 为例,创建
.github/workflows/ci.yml
文件:
name: CI
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu - latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Lint and format
run: npm run lint && npm run format
- name: Test
run: npm run test
这样每次代码推送到主分支时,会自动运行 lint、格式化和测试流程,保证代码质量。