TechFeedTechFeed
TypeScript타입

TS2339 Property does not exist on type — 없는 속성 접근

TS2339: Property '<prop>' does not exist on type '<type>'
한 줄 해결: 타입에 정의되지 않은 속성에 접근해 발생하며, 타입 정의를 보강하거나 타입을 좁히는 것이 정석입니다.

이런 증상일 때

객체.속성 접근 지점에 TS2339가 뜹니다. API 응답·이벤트 객체·확장한 window 등에서 자주 납니다.

원인

  • 타입(또는 interface)에 그 속성이 선언되지 않음
  • 유니온 타입이라 일부 멤버에만 있는 속성을 좁히지 않고 접근
  • window·globalThis에 커스텀 속성을 추가했는데 타입 선언이 없음

해결 방법

1
타입/인터페이스에 속성 추가

실제 존재하는 속성이면 타입 정의에 추가합니다.

interface User { name: string; age?: number }
2
유니온은 좁히기

in 연산자나 판별 속성(discriminant)으로 타입을 좁힌 뒤 접근합니다.

if ('age' in user) { /* user.age 안전 */ }
3
전역 확장 선언

window 등 전역에 추가한 속성은 declare global로 선언합니다.

declare global { interface Window { myFlag?: boolean } }
💡 예방: any 캐스팅으로 덮지 말고 타입을 정확히 정의하세요. API 응답은 zod 등으로 런타임 검증 + 타입 추론을 함께 쓰면 안전합니다.
TypeScriptTS2339타입interface속성

관련 에러

관련 가이드

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