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

kwk8002님의 프로필 이미지
kwk8002

작성한 질문수

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

정의된 타입으로 타입을 제한하기

정의된 타입으로 타입을 제한하기 강의에 대한 질문입니다.

해결된 질문

작성

·

183

1

현 강의에서
 
interface LengthType {
    length: number
}
function logTextLength2<T extends LengthType>(text: T): T {
    console.log(text.length)
    return text
}
 
logTextLength2('a')  
logTextLength2({ length: 123 })
 
이 코드에서 문자열은 기본으로 length속성이 있으므로 첫번쨰 호출시 동작 하지만, 제 개인적인 생각으로는 너무 혼란 스럽습니다. 뭔가 눈속임? 편법 ? 같은 느낌이고 , 타입스크립트의 정에서 벗어난 형태 인것 같기도 합니다... 혹시 현업에서도 이런 방식으로 사용하는지 궁금합니다. !
또한 이 코드를 보고 이렇게 생각하는 제가 아직 이해가 부족한건지
당연한 생각인지 한번 여쭙니다..

답변 1

2

안녕하세요, 눈속임이라기 보다는.. 제네릭의 타입 제한 정의에 맞게 명시적으로 { length: 123 } 뿐만 아니라 데이터 타입에 length 속성이 제공되는 문자열 타입도 사용할 수 있다는 사실에 주목하셔야 할 것 같습니다 :)

kwk8002님의 프로필 이미지
kwk8002
질문자

네 선생님이 말씀하신데로 이해하겠습니다. 

답변 감사합니다!

kwk8002님의 프로필 이미지
kwk8002

작성한 질문수

질문하기