문서의 이전 판입니다!
interface는 우리가 알고 있는 Java의 interface와 문법적으로 유사합니다. 하지만 객체지향에서 말하는 interface와는 의미적으로 좀 차이가 있습니다. 그 부분은 예제 중간중간에 살펴보기로 하고 지금은 TypeScript의 interface 에 대해서만 살펴보도록 하겠습니다.
TypeScript에서 interface는 새로운 데이터 타입을 만드는 추상 데이터 타입(abstract data type)으로 사용이 되며 일반 변수, 함수, 클래스의 type check를 위해 사용됩니다. interface 이용하여 타입을 선언하면 interface안에 명시된 property의 선언과 method의 구현이 강제되기 때문에 프로그래밍의 일관성을 확보할 수 있습니다.
참고로 ES6는 interface를 지원하지 않습니다. TypeScript만 지원합니다. 그렇기 때문에 interface를 컴파일 한 결과물을 보면 interface의 내용은 나타나지 않게됩니다.
그럼 간단한 예를 통해 알아보도록 하겠습니다.
interface IBook { bookName: string; bookAuthor: string; } let myBook: IBook; myBook = { bookName: "젊은 베르테르의 슬픔", bookAuthor: "괴테" }; console.log(myBook);
해당 .ts 파일을 컴파일 한 결과 .js 파일을 살펴보면 다음과 같습니다.
"use strict"; var myBook; myBook = { bookName: "젊은 베르테르의 슬픔", bookAuthor: "괴테" }; console.log(myBook);
위에서 언급한 대로 interface에 대한 내용은 포함되어 있지 않습니다. TypeScript의 interface는 type check를 위한 용도로 사용되게 됩니다.