잉여속성검사(Excess Property Checking) > 메모

본문 바로가기
사이트 내 전체검색

메모

typscript 잉여속성검사(Excess Property Checking)

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 41회 작성일 25-09-20 15:49

본문

잉여 속성 검사(Excess Property Checking)는 TypeScript의 중요한 타입 검사 기능입니다!

정의

객체 리터럴을 변수에 할당하거나 함수에 전달할 때, 타입에 정의되지 않은 추가 속성이 있는지 검사하는 기능입니다.

예시로 이해하기



interface User {
  name: string;
  age: number;
}

// ✅ 정상 - 필요한 속성만 있음
const user1: User = {
  name: "김철수",
  age: 25
};

// ❌ 에러 - 잉여 속성 검사에 걸림
const user2: User = {
  name: "이영희",
  age: 30,
  email: "lee@example.com"  // User 타입에 없는 속성!
};

언제 작동하나요?

1. 객체 리터럴을 직접 할당할 때


// ❌ 에러 발생
const user: User = {
  name: "박민수",
  age: 28,
  phone: "010-1234-5678"  // 잉여 속성!
};

2. 함수에 객체 리터럴을 직접 전달할 때


function printUser(user: User) {
  console.log(user.name, user.age);
}

// ❌ 에러 발생
printUser({
  name: "최지영",
  age: 26,
  address: "서울시"  // 잉여 속성!
});

언제 작동하지 않나요?

1. 변수를 통해 전달할 때


// ✅ 에러 없음 - 잉여 속성 검사 우회
const userData = {
  name: "정수진",
  age: 24,
  hobby: "독서"  // 잉여 속성이지만 변수로 전달하면 OK
};

const user: User = userData;  // 에러 없음!
  

2. 타입 단언 사용할 때


// ✅ 에러 없음
const user: User = {
  name: "한소영",
  age: 29,
  nickname: "소소"
} as User;  
  

왜 이런 기능이 있나요?

  • 실수 방지: 오타나 잘못된 속성명 사용을 막아줍니다
  • 타입 안전성: 예상치 못한 속성으로 인한 버그를 방지합니다
  • 코드 품질: 더 엄격한 타입 검사로 코드 품질을 향상시킵니다
  1. 인덱스 시그니처 추가
    
    interface User {
      name: string;
      age: number;
      [key: string]: any;  // 추가 속성 허용
    }
    
  2. 변수 사용
  3. 타입 단언

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 티로그 / 대표 : 김태규
주소 :부산광역시 수영구 광안로7번길 22 창성빌딩 3층
사업자 등록번호 : 617-86-10993
전화 : 051-325-6700 팩스 : 051-325-5665
통신판매업신고번호 : 제 2013-부산수영-0167 호
개인정보관리책임자 : 손승목

  • 게시물이 없습니다.

접속자집계

오늘
999
어제
920
최대
4,387
전체
438,705
Copyright © 소유하신 도메인. All rights reserved.