TechFeedTechFeed
TypeScript타입

TS2345 인자 타입 불일치 — Argument of type is not assignable

TS2345: Argument of type 'X' is not assignable to parameter of type 'Y'
한 줄 해결: 전달한 값의 타입이 함수가 기대하는 타입과 달라 발생하며, 타입을 좁히거나 정의를 맞추는 것이 정석입니다(as 단언은 최후수단).

이런 증상일 때

함수 호출·prop 전달 지점에 TS2345 가 뜨며 어떤 타입이 어떤 타입에 안 맞는지 보여줍니다. null 가능성, 유니온 타입, 선택적 속성에서 자주 납니다.

원인

  • 기대 타입은 string 인데 string | null 또는 undefined 가능성 있는 값 전달
  • 유니온 타입을 좁히지 않고 그대로 전달
  • 객체 리터럴의 속성 누락 또는 추가 속성

해결 방법

1
타입 가드로 좁히기

null/undefined 를 if 로 걸러 타입을 좁힌 뒤 전달합니다.

if (value != null) fn(value)
2
타입 정의 수정

실제로 null 이 들어올 수 있으면 함수 시그니처를 string | null 로 정확히 고칩니다. 거짓 단언보다 안전합니다.

3
as 단언 (최후수단)

런타임에 확실히 안전할 때만 as 로 단언합니다. 단언은 컴파일러를 속이는 것이라 남용 금지.

fn(value as string)
💡 예방: strictNullChecks 를 켜고 값의 null 가능성을 타입에 정직하게 반영하면 이런 충돌을 설계 단계에서 잡습니다.
TypeScriptTS2345타입strictNullChecksas

관련 에러

관련 가이드

React 상태 관리 비교 2026 — Zustand vs Jotai vs Redux Toolkit vs ValtioElysiaJS 실전 튜토리얼 — Bun 기반 TypeScript API 서버, JWT 인증, Swagger 문서화, Docker 배포Temporal.io 워크플로우 튜토리얼 — TypeScript로 분산 작업 큐와 장기 실행 프로세스 구현Vercel AI SDK 6 완전 가이드 — 에이전트 1급 추상화, MCP 풀 지원, DevTools