Community

TypeScript: Should you use Types or Interfaces? 발언자는 타입 및 인터페이스의 성능과 기능에 대한 유용한 인사이트를 제공하며 이에 대한 자신의 의견을 세 가지

TypeScript: Should you use Types or Interfaces? 발언자는 타입 및 인터페이스의 성능과 기능에 대한 유용한 인사이트를 제공하며 이에 대한 자신의 의견을 세 가지 단계로 제시한다. 최초에 발언자는 TypeScript 성능 위키와 마찬가지로 인터페이스가 타입보다 우수하다고 믿었다. 위키는 인터페이스가 더 빠르기 때문에 속도가 관심사인 경우 더 좋은 선택이라고 주장한다. 그러나 발언자는 곧 인터페이스는 객체와 함수와 같은 특정 항목에만 사용할 수 있으며 타입은 모든 것에 사용할 수 있다는 것을 발견했다. 또한 인터페이스의 속도 이점은 실제 코드가 아닌 타입 체크기의 속도에만 적용되며 이 이점은 예전만큼 중요하지 않다. 그 다음, 발언자는 두 번째 단계로 넘어갔는데, 이는 일관성만 지킨다면 어떤 것을 사용하더라도 상관없다는 것이다. 발언자는 모든 객체는 인터페이스로 유형 지정하고, 나머지는 타입으로 유형 지정하는 것이 좋다고 제안했다. 또는 모든 것에 대해 타입을 사용할 수도 있다. 발언자는 인터페이스가 상속 등 고유한 속성을 가지고 있다는 것이 흥미롭다고 생각했다. 그러나 발언자는 곧 인터페이스가 일부 사용하지 않는 기능을 번들로 제공한다는 것을 깨달았다. 특히 기본 객체 유형을 정의하는 것만 필요한 경우에는 이러한 기능이 중요하지 않을 수 있다. 예를 들어, 인터페이스의 중요한 기능 중 하나는 동일한 스코프 내에서 동일한 이름을 가진 두 인터페이스를 병합할 수 있는 선언 병합이다. 이는 일부 목적에는 유용하지만 인터페이스에 대한 생각 방식을 변경하는 방식 때문에 처리하기 까다롭다. 또한이 기능은 타입을 확장하는 유형을 정의하려는 경우 문제가 발생할 수 있으며 이는 타입으로는 가능하지만 인터페이스로는 불가능하다. 따라서 발언자는 세 번째 단계로 들어가서 특정 인터페이스 기능이 필요하지 않은 경우 타입을 사용해야한다는 결론을 내렸다. 다른 유형을 확장하는 타입이 필요한 경우 인터페이스를 사용하라. 클래스가 인터페이스를 확장한다는 것을 나타내려면 인터페이스를 사용하라. 객체지향 프로그래밍에서 인터페이스라는 단어를 좋아한다면 인터페이스를 사용하라. 그러나 특정 상황에서 이상하거나 이상한 일을하지 않을 예측 가능한 것이 필요하다면 대개 타입을 사용해야한다. 발언자는 또한 타입과 인터페이스 간에 성능 차이가 없으므로 두 가지 중 선택은 기능과 일관성에 기반해야한다고 지적했다.

알림

알림이 없습니다