TypeScript 타입 검사기
Post-Tool중급Hook 타입: post-tool-use
TypeScript 타입 검사기는 TypeScript 파일에 대한 Write 및 Edit 작업의 Post-Tool 이벤트에 연결됩니다. 각 편집 후 프로젝트에서 tsc --noEmit을 실행하여 타입 안전성을 검증합니다. 매번 전체 프로젝트를 검사하는 대신 tsbuildinfo 캐시를 활용한 증분 컴파일로 빠른 피드백을 제공합니다. 타입 오류가 발견되면 파일 위치와 오류 메시지를 보고하여 Claude가 즉시 수정할 수 있도록 합니다. 이를 통해 여러 편집이 연쇄적 타입 오류를 발생시키는 일반적인 문제를 방지합니다.
TypeScript타입 검사tsc타입 안전성검증
Hook 코드
#!/bin/bash
# TypeScript Type Checker Hook
# Runs tsc --noEmit after TypeScript file edits
# Only trigger on Write or Edit
if [[ "$TOOL_NAME" != "Edit" ]] && [[ "$TOOL_NAME" != "Write" ]]; then
exit 0
fi
FILE_PATH=$(echo "$TOOL_INPUT" | jq -r '.file_path // .path // empty')
if [ -z "$FILE_PATH" ]; then
exit 0
fi
# Only check TypeScript files
if ! echo "$FILE_PATH" | grep -qE '\.(ts|tsx)$'; then
exit 0
fi
# Find the nearest tsconfig.json
SEARCH_DIR=$(dirname "$FILE_PATH")
TSCONFIG=""
while [ "$SEARCH_DIR" != "/" ]; do
if [ -f "$SEARCH_DIR/tsconfig.json" ]; then
TSCONFIG="$SEARCH_DIR/tsconfig.json"
break
fi
SEARCH_DIR=$(dirname "$SEARCH_DIR")
done
if [ -z "$TSCONFIG" ]; then
echo "No tsconfig.json found, skipping type check."
exit 0
fi
PROJECT_DIR=$(dirname "$TSCONFIG")
echo "Running type check..."
OUTPUT=$(cd "$PROJECT_DIR" && npx tsc --noEmit --incremental 2>&1)
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
ERROR_COUNT=$(echo "$OUTPUT" | grep -c "error TS")
echo "TYPE ERRORS: $ERROR_COUNT error(s) found"
echo "$OUTPUT" | grep "error TS" | head -5
if [ "$ERROR_COUNT" -gt 5 ]; then
echo " ... and $((ERROR_COUNT - 5)) more errors"
fi
exit 1
fi
echo "Type check passed."
exit 0
이 Hook을 Claude Code 설정 또는 .claude/settings.json에 추가하면 활성화됩니다.
실행 미리보기
TypeScript 타입 검사기
TypeScript 타입 검사기에 대해
Claude Code Hooks는 Claude 작업 중 특정 이벤트에 반응하여 커스텀 셸 명령을 자동으로 실행합니다. TypeScript 타입 검사기은(는) 중급 수준의 Post-Tool Hook으로, 개발 워크플로우의 핵심 시점에서 작업을 자동화하여 수동 단계를 줄이고 팀 전체의 일관성을 유지합니다.