인프런 커뮤니티 질문&답변

박재영님의 프로필 이미지
박재영

작성한 질문수

타입스크립트 입문 - 기초부터 실전까지

타입 제한 질문드립니다

해결된 질문

작성

·

205

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

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

박재영님의 프로필 이미지
박재영

작성한 질문수

질문하기