You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VSCode同款TypeScript格式化工具批量处理TS文件?

问题解答

VSCode内置的TypeScript代码格式化工具没有单独的独立CLI版本,但它底层依赖的是TypeScript官方的代码格式化能力,你可以通过现成的CLI工具实现和内置工具一致的格式化效果,并且递归处理文件夹下的所有TS文件,具体方案如下:

可行实现方案

方法一:使用tsfmt工具(与VSCode内置格式化逻辑一致)

  1. 安装工具:全局安装基于TypeScript官方格式化API开发的tsfmt
    npm install -g tsfmt
    
  2. 递归格式化TS文件:在目标文件夹根目录执行命令,即可递归处理所有TS文件
    tsfmt -r .
    
    • 若需自定义格式化规则(如缩进、换行符等),可在项目根目录创建tsfmt.json配置文件,配置项与VSCode中typescript.format.*参数对应,示例:
      {
        "indentSize": 2,
        "tabSize": 2,
        "newLineCharacter": "\n",
        "convertTabsToSpaces": true
      }
      

方法二:使用TypeScript官方API编写自定义脚本

若不想依赖第三方工具,可自行编写简单Node.js脚本实现:

  1. 确保项目已安装TypeScript
    npm install --save-dev typescript
    
  2. 创建格式化脚本(如format-ts.js)
    const fs = require('fs');
    const path = require('path');
    const ts = require('typescript');
    
    // 定义格式化配置(与VSCode内置配置对应)
    const formatOptions = {
      indentSize: 2,
      tabSize: 2,
      convertTabsToSpaces: true,
      newLineCharacter: '\n'
    };
    
    // 递归遍历文件夹处理TS文件
    function formatDirectory(dir) {
      const files = fs.readdirSync(dir);
      files.forEach(file => {
        const fullPath = path.join(dir, file);
        const stats = fs.statSync(fullPath);
        if (stats.isDirectory()) {
          formatDirectory(fullPath);
        } else if (path.extname(file) === '.ts') {
          const content = fs.readFileSync(fullPath, 'utf8');
          const sourceFile = ts.createSourceFile(file, content, ts.ScriptTarget.Latest, true);
          const formattedContent = ts.formatCode(content, formatOptions, {
            getSourceFile: (fileName, languageVersion) => fileName === file ? sourceFile : undefined
          });
          fs.writeFileSync(fullPath, formattedContent);
          console.log(`格式化完成:${fullPath}`);
        }
      });
    }
    
    // 执行格式化,传入目标文件夹路径(当前目录)
    formatDirectory(process.cwd());
    
  3. 运行脚本
    node format-ts.js
    

方法三:使用VSCode的CLI命令(间接方式)

VSCode本身提供CLI命令,可调用内置格式化功能:

  1. 确保VSCode已添加到系统PATH
  2. 执行格式化命令
    code --format .
    
    该命令会打开VSCode并自动格式化当前目录下所有支持的文件(含TS文件),完成后可关闭窗口,适合无需完全后台运行的场景。

内容的提问来源于stack exchange,提问作者cshu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:20:40