-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
정의된 타입으로 타입을 제한하기 강의에 대한 질문입니다.
22.05.12 14:50 작성 조회수 158
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속성이 있으므로 첫번쨰 호출시 동작 하지만, 제 개인적인 생각으로는 너무 혼란 스럽습니다. 뭔가 눈속임? 편법 ? 같은 느낌이고 , 타입스크립트의 정에서 벗어난 형태 인것 같기도 합니다... 혹시 현업에서도 이런 방식으로 사용하는지 궁금합니다. !
또한 이 코드를 보고 이렇게 생각하는 제가 아직 이해가 부족한건지
당연한 생각인지 한번 여쭙니다..
답변을 작성해보세요.
2
장기효(캡틴판교)
지식공유자2022.05.14
안녕하세요, 눈속임이라기 보다는.. 제네릭의 타입 제한 정의에 맞게 명시적으로 { length: 123 } 뿐만 아니라 데이터 타입에 length 속성이 제공되는 문자열 타입도 사용할 수 있다는 사실에 주목하셔야 할 것 같습니다 :)
답변 1