-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
타입 제한 질문드립니다
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프로퍼티를 갖지만 객체가 아니지 않나요 ?
+ 인터페이스는 객체의 프로퍼티 타입을 정의할 때만 사용하는것인지요 ?
감사합니다:)
답변을 작성해보세요.
1
장기효(캡틴판교)
지식공유자2022.04.13
안녕하세요 재영님, '10'은 객체가 아니지만 length 프로퍼티를 갖는 데이터라서 위 제네릭 타입 정의 코드에 호환됩니다. 추가로 문자열 데이터도 따지고 보면 객체를 상속 받아 제작된 데이터 타입입니다.
인터페이스는 변수, 함수, 클래스 등 다양한 곳의 타입 정의를 위해 사용됩니다 :)
0
답변 2