MST

星途 面试题库

面试题:设计一套通用的TypeScript类型语法兼容与代码格式化工作流

请设计一套完整的工作流,涵盖从项目初始化到日常开发,确保TypeScript代码的类型语法兼容性以及代码格式化的一致性。该工作流需要考虑不同开发环境(本地开发、CI/CD),以及多种编辑器(如VSCode、WebStorm)的适配。详细说明在工作流中如何使用工具(如ESLint、Prettier、TSLint等)进行配置和协同工作,以保证在任何情况下都能高效地开发出类型安全且格式规范的TypeScript代码。同时,要考虑如何处理不同版本的工具之间可能出现的兼容性问题。
38.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

项目初始化到日常开发工作流

一、项目初始化

  1. 创建项目目录 在合适的位置创建项目文件夹,例如 my - project
  2. 初始化 npmyarn 在项目目录下执行 npm init -yyarn init -y,生成 package.json 文件,用于管理项目依赖。
  3. 安装必要工具
    • TypeScriptnpm install typescript --save - devyarn add typescript - D
    • ESLintnpm install eslint --save - devyarn add eslint - D
    • Prettiernpm install prettier --save - devyarn add prettier - D
    • ESLint 与 Prettier 集成工具
      • eslint - plugin - prettiernpm install eslint - plugin - prettier --save - devyarn add eslint - plugin - prettier - D
      • eslint - config - prettiernpm install eslint - config - prettier --save - devyarn add eslint - config - prettier - D

二、TypeScript 配置

  1. 生成 tsconfig.json 在项目根目录执行 npx tsc --init,生成 tsconfig.json 文件。
  2. 配置 tsconfig.json
    • 设置 "target" 为合适的 ECMAScript 版本,如 "es6"
    • 设置 "module""commonjs""esnext",根据项目需求选择。
    • 设置 "strict"true,开启严格类型检查。
    • 根据项目结构设置 "rootDir""outDir" 等路径相关配置。

三、ESLint 配置

  1. 生成 .eslintrc.json 执行 npx eslint --init,根据提示选择合适的选项,例如:
    • 选择 JavaScript modules (import/export) 模块类型。
    • 选择 TypeScript 作为项目使用的语言。
    • 选择 None of these 不使用框架。
    • 选择 Browser 作为运行环境。
    • 选择 Use a popular style guide,然后选择 Airbnb(可根据团队喜好选择其他风格)。
    • 选择 JSON 作为配置文件格式。
  2. 修改 .eslintrc.json 添加以下配置,以集成 Prettier:
{
    "extends": [
        "plugin:prettier/recommended"
    ]
}

eslint - plugin - prettier 插件会将 Prettier 的错误作为 ESLint 错误处理,eslint - config - prettier 会关闭 ESLint 中与 Prettier 冲突的规则。

四、Prettier 配置

  1. 生成 .prettierrc.json 在项目根目录创建 .prettierrc.json 文件,配置如下:
{
    "semi": true,
    "singleQuote": true,
    "trailingComma": "es5"
}

这些配置可根据团队代码风格进行调整。 2. 创建 .prettierignore 在项目根目录创建 .prettierignore 文件,添加不需要 Prettier 格式化的文件或目录,例如 node_modulesdist 等。

五、本地开发环境配置

  1. VSCode 配置
    • 安装 ESLintPrettier - Code formatter 插件。
    • .vscode/settings.json 中添加如下配置:
{
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }
}

这样在保存文件时,VSCode 会自动使用 Prettier 格式化代码,并使用 ESLint 修复可修复的错误。 2. WebStorm 配置

  • 安装 ESLintPrettier 插件。
  • 进入 Settings -> Tools -> External Tools,配置 Prettier 和 ESLint 路径。
  • Settings -> Languages & Frameworks -> JavaScript -> Code Quality Tools -> ESLint 中,启用 ESLint 并设置相关配置。
  • Settings -> Editor -> Code Style 中,导入 Prettier 配置,使 WebStorm 的代码格式化风格与 Prettier 一致。

六、CI/CD 环境配置

  1. 安装依赖 在 CI/CD 脚本中,执行 npm installyarn install,安装项目所需的所有依赖。
  2. 运行检查
    • 执行 npx tsc 检查 TypeScript 类型错误。
    • 执行 npx eslint src(假设源代码在 src 目录下)检查代码风格和潜在问题。
    • 执行 npx prettier --check src 检查代码格式是否符合 Prettier 配置。

七、处理工具版本兼容性问题

  1. 锁定版本package.json 中,明确指定工具的版本号,避免因版本自动更新导致兼容性问题。例如:
{
    "devDependencies": {
        "eslint": "^7.32.0",
        "prettier": "^2.5.1",
        "typescript": "^4.4.4"
    }
}
  1. 定期更新并测试 定期检查工具的新版本发布,在测试环境中更新工具版本,并全面测试项目,确保代码的类型兼容性和格式化一致性不受影响。如果出现问题,参考工具的更新文档进行配置调整。