• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

타입 제한 질문드립니다

22.04.13 11:18 작성 조회수 144

3

interface LengthType { 
  length: number; 
} 
function logTextLength<T extends LengthType>(text: T): T { 
  text.length; 
  return text; 
}

logTextLength('10');

https://www.inflearn.com/questions/411248 여기서

인자로 '10'이 length프로퍼티를 가진 객체만 가능하다고 하셨고 여기까진 이해 했습니다.

근데 '10'은 문자열로 프로토타입 체인상에 length프로퍼티를 갖지만 객체가 아니지 않나요 ?

 

+ 인터페이스는 객체의 프로퍼티 타입을 정의할 때만 사용하는것인지요 ? 

감사합니다:)

 

답변 2

·

답변을 작성해보세요.

1

안녕하세요 재영님, '10'은 객체가 아니지만 length 프로퍼티를 갖는 데이터라서 위 제네릭 타입 정의 코드에 호환됩니다. 추가로 문자열 데이터도 따지고 보면 객체를 상속 받아 제작된 데이터 타입입니다.

인터페이스는 변수, 함수, 클래스 등 다양한 곳의 타입 정의를 위해 사용됩니다 :)

0

별자리님의 프로필

별자리

2022.04.27

저도 궁금했는데 궁금증이 해결되었습니다 감사합니다!