
TypeScript
69
아이템 13 타입과 인터페이스의 차이점 알기
문을 적용하는 것이 좋습니다.
··
만약 같은 타입 시그니처를 반복적으로 작성한 코드가 있다면 함수 타입을
분리해 내거나 이미 존재하는 타입을 찾아보도록 합니다. 라이브러리를 직
접 만든다면 공통 콜백에 타입을 제공해야 합니다.
··
다른 함수의 시그니처를 참조하려면
typeof fn
을 사용하면 됩니다.
타입스크립트에서 명명된 타입(named type)을 정의하는 방법은 두 가지가 있
습니다. 다음처럼 타입을 사용할 수 있습니다.
type TState
=
{
name: string;
capital: string;
}
또는 인터페이스를 사용해도 됩니다.
interface IState {
name: string;
capital: string;
}
(명명된 타입을 정의할 때 인터페이스 대신 클래스를 사용할 수도 있지만, 클
래스는 값으로도 쓰일 수 있는 자바스크립트 런타임의 개념입니다. 이 내용은
아이템 8에서 다룹니다.)
대부분의 경우에는 타입을 사용해도 되고 인터페이스를 사용해도 됩니다.
그러나 타입과 인터페이스 사이에 존재하는 차이를 분명하게 알고, 같은 상황
에서는 동일한 방법으로 명명된 타입을 정의해 일관성을 유지해야 합니다. 그
러려면 하나의 타입에