IT이야기

TypeScript의 스위치 문에서 "유형이 유형과 비교할 수 없음" 오류

cyworld 2022. 4. 1. 20:59
반응형

TypeScript의 스위치 문에서 "유형이 유형과 비교할 수 없음" 오류

마지막 사례 조치를 추가하기 전까지 스위치 문장이 완벽하게 작동했음유형.POST_PROESSGUIDE_ANSWER_SUPTYSGUIDE.

import * as actionTypes from "../action-types/prosessguide-async"
import { ProsessguideAsyncAction } from "../actions/prosessguide-async"
import initialState from "../constants/initial-state"
import { IProsessguideAsyncState } from "../types/prosessguide"

const prosessguideAsyncReducer = (
  state: IProsessguideAsyncState = initialState.prosessguideAsync,
  action: ProsessguideAsyncAction,
): IProsessguideAsyncState => {

  switch (action.type) {
    case actionTypes.REQUEST_PROSESSGUIDE: {
      return {
        ...state,
        data: undefined,
        error: undefined,
        isFetching: true,
      }
    }
    case actionTypes.RECEIVE_PROSESSGUIDE: {
      return {
        ...state,
        data: action.data,
        isFetching: false,
      }
    }
    case actionTypes.FETCH_ERROR_PROSESSGUIDE: {
      return {
        ...state,
        error: action.error,
        isFetching: false,
      }
    }
    case actionTypes.POST_PROSESSGUIDE_ANSWERS: {
      return {
        ...state,
        isFetching: true,
      }
    }
    case actionTypes.POST_PROSESSGUIDE_ANSWERS_SUCCESS: {
      return {
        ...state,
        isFetching: false,
        submitted: true
      }
    }

    default:
      return state
  }
}

export default prosessguideAsyncReducer

src/조치/prosessguide-c.ts

export type ProsessguideAsyncAction =
  IRequestProsessguideAction |
  IReceiveProsessguideAction |
  IPostProsessguideAction |
  IFetchErrorProsessguideAction |
  IPostProsessguideAnswersSuccess

src/조치/prosessguide-c.ts

export interface IPostProsessguideAnswersSuccess {
  type: actionTypes.POST_PROSESSGUIDE_ANSWERS_SUCCESS
}



Type '"POST_PROSESSGUIDE_ANSWERS_SUCCESS"' is not comparable to type '"REQUEST_PROSESSGUIDE" | "RECEIVE_PROSESSGUIDE" | "POST_PROSESSGUIDE_ANSWERS" | "FETCH_ERROR_PROS...'.

이제 tsc가 이 오류를 반환하는 중:

src/reducers/prosessguide-async.ts(39,10): error TS2678: 
Type '"POST_PROSESSGUIDE_ANSWERS_SUCCESS"' 
is not comparable to type 
'"REQUEST_PROSESSGUIDE" | "RECEIVE_PROSESSGUIDE" | "FETCH_ERROR_PROSESSGUIDE" | 
"POST_PROSESSGUIDE...'.

tsc 버전 5.6.0을 사용하고 있다.

알고 보니 덧붙이는 것을 잊었었다.IPostProsessguideAnswersSuccess에게ProsessguideAsyncAction접점

전체 작업 예제로 업데이트된 원본 게시물.

내가 메세지를 받았을때:XXX is not comparable to type YYYReducer의 스위치에서, 내가 웹팩 개발 서버를 다시 시작해야 했던 것은 그것이 어떤 이유로 소스 코드를 재구축하지 않았기 때문이다.

내 암호는 완벽히 괜찮았어

유형 + 반응 + 환원

작업에서 유형을 사용하기 전에 작업에 유형을 추가했는지 확인하십시오.reducer switch case.

참조URL: https://stackoverflow.com/questions/48906528/type-is-not-comparable-to-type-error-on-switch-statement-in-typescript

반응형