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

dev kim님의 프로필 이미지
dev kim

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

Q&A(AOP 설명)

런타임시 타입스크립트 인터페이스가 존재하지 않는 이유는 뭔가요??

해결된 질문

작성

·

313

0

안녕하세요. 해당 강의와는 별개의 질문입니다!

 

클래스와 인터페이스의 차이가 런타임이 존재하는지의 여부라고 아래 답변해주신 글을 봤었습니다.

가장 큰 차이는 interface는 런타임에 없고, class는 런타임에 있는 것입니다. 런타임에 있어서 런타임에도 타입체크를 수행하길 원하면 class로 선언하면 되고, 런타임에는 없길  원하면 interface를 쓰시면 됩니다.

 

위 답변에서 궁금한점이 타입스크립트 인터페이스가 런타임에 없는 이유가 뭔가요??

컴파일시 자바스크립트 파일에서 인터페이스가 삭제되면서 런타임 시 제외가 되는 것인가요? 자바스크립트에는 인터페이스 문법이 없다고 알고 있는데.. 문법이 없기 때문에 컴파일할 수 없어서 삭제되고 런타임에서는 제외가 되는 것인지.. 궁금해져서 조금 더 구체적으로 알고 싶습니다!

 

 

 

 

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다. 노드는 자바스크립트를 실행하지 타입스크립트를 실행하지 않습니다. 타입스크립트 코드는 전부 자바스크립트로 변환되며 변환 과정에는 타입스크립트 고유 문법인 인터페이스는 삭제됩니다. 그래서 자바스크립트에서는 인터페이스를 가질 수 없습니다. 그래서 클래스를 대신 사용하는 것이고요.

dev kim님의 프로필 이미지
dev kim
질문자

답변 감사합니다! 궁금증이 해결되었습니다! 🙂

dev kim님의 프로필 이미지
dev kim

작성한 질문수

질문하기