IT이야기

형식 지정 기능에서 2가지 유형을 반환하는 모범 사례?

cyworld 2022. 3. 10. 22:13
반응형

형식 지정 기능에서 2가지 유형을 반환하는 모범 사례?

나는 포스트를 수행하고 관측 가능한 모델을 반환하는 api 함수를 가지고 있다.AResponse(있는 인터페이스)

나는 두 개의 모델 중 하나를 관찰할 수 있는 것을 원한다.반환된 상태를 기준으로 AResponse 또는 B.

이것이 내 두 가지 반응 모델이다.

export interface ModelAResponse {
  res: ModelA;
}

export interface ModelBResponse {
  res: ModelB
}

(모델A, 모델B는 다른 클래스에 배치된 인터페이스)

그래서 나는 현재 a 모델의 반품을 한 번만 지원하고 있다.

public myApiFunc(req: MyRequestModel): Observable<ModelAResponse> {
      ...
this.http.post("my/api/path", req, {headers: myHeaders}),
      (jsonReturned) => status === 200 ? {res: jsonReturned} : undefined);
      ...
}

이 펑크를 모델 중 하나를 반환하도록 변경하는 방법AResponse 또는 ModelBResponse는 활자 설명의 모범 사례 방식의 상태를 기반으로 하는가?

당신은 이것을 못합니다.Typecript는 빌드 시 정적 분석을 기반으로만 사물을 입력할 수 있으며, 어떤 사물을 설명해야 빌드 시 API 호출의 결과를 알 수 있는지 알 수 있지만 그렇지 않다.

가장 좋은 방법은 API 호출에서 다음 인터페이스 중 하나를 반환할 수 있음을 나타내는 것이다.

public myApiFunc(req: MyRequestModel): Observable<ModelAResponse | ModelBResponse>

하지만 그건 여전히 당신이 알아내야 할 필요가 있을거야A또는B런타임에

참조URL: https://stackoverflow.com/questions/43194326/best-practice-for-returning-2-different-types-in-typescript-function

반응형