programing

Typescript에서 인터페이스 또는 클래스를 사용하는 경우

testmans 2023. 4. 5. 21:24
반응형

Typescript에서 인터페이스 또는 클래스를 사용하는 경우

사용자가 Typescript에 이메일과 비밀번호를 입력해야 하는 간단한 로그인 시나리오가 있습니다.이렇게 튼튼한 타입을 만들어서 백엔드로 보내야겠어요.

다음과 같이 기재해야 합니까?

export interface UserLogin {
  email: string;
  password: string;
}
//OR
export class UserLogin {
  email: string;
  password: string;
}

그리고 이들 중 하나를 언제 사용해야 하는지 어떻게 알 수 있습니까?

기본적으로 클래스는 기본적으로 객체 팩토리(즉, 객체가 어떻게 보이는지에 대한 설계도)인 반면 인터페이스는 유형 검사에만 사용되는 구조입니다.

클래스는 오브젝트 작성에 도움이 되는 속성 및 메서드를 초기화할 수 있지만 인터페이스는 기본적으로 오브젝트의 속성과 유형을 정의합니다.

설명한 시나리오에서는 인터페이스를 사용하여 User Login 유형을 설정합니다.

커스텀 타입을 선언할 필요가 있는 경우는, 인터페이스를 사용합니다.IMO에는 매우 실용적인 이유가 있습니다.그것은 JavaScript로 변환되지 않기 때문에 생성된 코드가 짧아집니다.

생성자를 사용하여 개체를 인스턴스화하거나 인스턴스화 및 주입하는 프레임워크를 사용해야 하는 경우 인터페이스가 작동하지 않습니다.그런 다음 클래스 또는 추상 클래스를 사용합니다.

사실 둘 다 그 일을 할 것이다.전용으로 설계되어 있기 때문에 타입 체크를 하는 것만으로 인터페이스를 사용하는 것을 추천합니다.

클래스와 인터페이스는 객체 지향 프로그래밍뿐만 아니라 TypeScript의 유형 검사도 지원하는 강력한 구조입니다.클래스는 동일한 구성(속성과 메서드)을 공유하는 개체를 만들 수 있는 Blueprint입니다.인터페이스는 객체를 기술하는 관련 속성 및 메서드의 그룹이지만 구현 및 초기화를 제공하지 않습니다.

송신원: https://toddmotto.com/classes-vs-interfaces-in-typescript

그것을 백엔드로 보내다.

유선으로 클래스를 전송하려면 추가 작업이 필요합니다. JSON 콘텐츠 유형을 사용하는 경우 클래스는 백엔드 코드의 일반 개체로 간주됩니다.JSON을 클래스 개체로 다시 변환하여 메서드를 호출할 수 있도록 하는 방법에 대한 이 질문에 대한 다양한 답변을 참조하십시오.

, 메서드가 가 를 사용하여 하지 않는 한 되지 않습니다.instanceof.

이러한 문제를 방지하려면 백엔드와의 통신에 오브젝트를 나타내기 위해 데이터 멤버만 있는 인터페이스를 사용하십시오.

언급URL : https://stackoverflow.com/questions/51716808/when-use-a-interface-or-class-in-typescript

반응형