Skip to content

feat: TypeScript型チェックの強化とCI/CD自動化を実装#19

Merged
MrSmart00 merged 3 commits intomainfrom
feature/improve-typescript-checks
Sep 22, 2025
Merged

feat: TypeScript型チェックの強化とCI/CD自動化を実装#19
MrSmart00 merged 3 commits intomainfrom
feature/improve-typescript-checks

Conversation

@MrSmart00
Copy link
Owner

@MrSmart00 MrSmart00 commented Sep 22, 2025

📋 概要

TypeScriptの型チェックを開発段階で早期発見できるよう、型チェック機能を強化し、CI/CDパイプラインでの自動化を実装しました。

🎯 目的・背景

発見された問題

  • npm run build実行時にconvex/rssQiitaApi.ts未使用変数エラーが発生
  • 開発中にTypeScriptエラーがキャッチできていなかった
  • convex用のtsconfig.jsonに型チェック設定が不足

根本原因

  1. 設定の分離: メインのtsconfig.jsonはconvexディレクトリを除外
  2. 開発コマンドの問題: npm run devでは型チェックを実行していない
  3. Convex設定不足: convex/tsconfig.jsonnoUnusedLocals設定が欠如

🔧 変更内容

1. Convex TypeScript設定の強化

// convex/tsconfig.json
{
  "compilerOptions": {
    "noUnusedLocals": true,     // ✨ 追加
    "noUnusedParameters": true  // ✨ 追加
  }
}

2. 開発用型チェックスクリプトの追加

// package.json
{
  "scripts": {
    "typecheck": "tsc --noEmit && cd convex && tsc --noEmit",
    "typecheck:watch": "concurrently \"tsc --noEmit --watch\" \"cd convex && tsc --noEmit --watch\""
  }
}

3. CI/CD自動化ワークフローの構築

# .github/workflows/typecheck.yml
- name: Generate Convex types
  run: npx convex codegen --typecheck disable
- name: Run TypeScript type check  
  run: npm run typecheck

4. 未使用変数の削除

  • convex/rssQiitaApi.tsから未使用のcontent変数を削除

🚀 効果・メリット

開発効率の向上

  • 早期エラー発見: ビルド前に型エラーを検出
  • リアルタイム監視: npm run typecheck:watchでファイル変更時に自動型チェック
  • 統一された品質基準: 全TypeScriptファイルで一貫した型チェック

品質保証の強化

  • CI/CDでの自動チェック: プッシュ・PR作成時に自動で型チェック実行
  • 品質ゲートの設置: 型エラーがあるコードのマージを防止
  • 技術債務の予防: 未使用変数などのコード臭を自動検出

💡 ジュニアエンジニア向け学習ポイント

TypeScript設定オプションの理解

  • noUnusedLocals: 使用されていないローカル変数を検出
  • noUnusedParameters: 使用されていない関数パラメータを検出
  • --noEmit: 型チェックのみ実行(JavaScript出力なし)

CI/CDベストプラクティス

  • 品質ゲート: 自動テストで品質を担保
  • 早期フィードバック: 問題を素早く開発者に通知
  • 継続的改善: コード品質を継続的に向上

🧪 使用方法

開発時の型チェック

# 一回だけ型チェック実行
npm run typecheck

# ファイル変更を監視して自動型チェック
npm run typecheck:watch

CI/CDでの自動実行

  • プッシュまたはPR作成時に自動で型チェックが実行されます
  • 型エラーがある場合、CIが失敗してマージがブロックされます

🔍 レビューポイント

設定ファイルの確認

  • convex/tsconfig.jsonの新しいオプション設定
  • package.jsonの新しいスクリプト追加

ワークフローの検証

  • .github/workflows/typecheck.ymlのステップ構成
  • Convex認証不要での型生成が正しく動作するか

品質向上の効果

  • 未使用変数の適切な削除
  • 型チェックの包括性(メインプロジェクト + Convex)

🤖 Generated with Claude Code

MrSmart00 and others added 3 commits September 22, 2025 22:17
- convex/tsconfig.jsonにnoUnusedLocalsとnoUnusedParametersを追加
- package.jsonに型チェック用スクリプト(typecheck、typecheck:watch)を追加
- GitHub Actionsでの型チェック自動化ワークフローを作成
- 未使用変数contentを削除してコードを整理

開発中のTypeScriptエラーの早期発見と品質向上を実現

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- CI/CD環境で認証エラーを回避するため、`npx convex codegen --typecheck disable`を追加
- 型チェック実行前にConvex型を生成することで、TypeScript型エラーを防止
- 認証が不要な型生成コマンドを使用し、GitHub Actions実行時の信頼性を向上

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Node.jsバージョンを18から20に更新(Vite v7.1.5の要件対応)
- package.jsonで"type": "module"に変更してESモジュール対応
- GitHub Actions上でのビルドエラー(Node.jsバージョン不足とESモジュール構文エラー)を解決

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@MrSmart00 MrSmart00 merged commit 02d8eb2 into main Sep 22, 2025
1 check passed
@MrSmart00 MrSmart00 deleted the feature/improve-typescript-checks branch September 22, 2025 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant