Promise.all 오류- '(비디오 | 정의되지 않음) []'유형은 '비디오 []'유형에 할당 할 수 없습니다.

๖JoJo

에 대한 유형에 문제가 Promises.all있습니다. Video[]인터페이스 를 반환해야 하지만 다음과 같은 오류가 발생했습니다.

'(Video | undefined) []'유형은 'Video []'유형에 할당 할 수 없습니다. '비디오 | undefined '는'Video '유형에 할당 할 수 없습니다. '정의되지 않음'유형은 '비디오'유형에 할당 할 수 없습니다.

(Video | undefined)[]전체 타이핑 으로 변경하면 오류가 Video[]다시 발생해야 합니다.

내 코드는 다음과 같습니다.

  const getDemo = async () => {
    setError({ show: false, msg: "" });
    try {
      setIsLoading(true);
      const resp: Video[] = await Promise.all(
        ourData.map(async (item) => {
          if (item.type === videoConstants.TYPE_YOUTUBE) {
            return getYouTubeVideo(item.id);
          }
          if (item.type === videoConstants.TYPE_VIMEO) {
            return getVimeoVideo(item.id);
          }
        })
      );
      setData([...data, ...resp]);
    } catch {
      setError({ show: true, msg: "failed to watch demo" });
    }
    setIsLoading(false);
  };

"DRY"규칙을 유지하기 위해 API를 가져 오는 자체 함수를 사용하고 있습니다. 단일 개체를 가져 오는 것은 괜찮지 만 for Promise.all사용하여 데이터베이스에서 모든 컬렉션을 가져 오면 처리 할 수없는 오류가 발생합니다.

아지트 샤

아래 코드 :

if (item.type === videoConstants.TYPE_YOUTUBE) {
  return getYouTubeVideo(item.id);
}
if (item.type === videoConstants.TYPE_VIMEO) {
  return getVimeoVideo(item.id);
}

블록 Video | undefined이 없기 때문에 반환 유형이 있습니다 else.

이 방법을 시도해 볼 수 있습니다 (에 item.type있는 두 값만 사용할 수있는 경우 videoConstants).

if (item.type === videoConstants.TYPE_YOUTUBE) {
  return getYouTubeVideo(item.id);
}
return getVimeoVideo(item.id);

또는 아마도 :

if (item.type === videoConstants.TYPE_YOUTUBE) {
  return getYouTubeVideo(item.id);
}
if (item.type === videoConstants.TYPE_VIMEO) {
  return getVimeoVideo(item.id);
}
return {} as Video // TODO: depends on Video

또는 위의 작업을 수행 할 수없는 경우 마지막 옵션 일 수 있습니다. const resp: (Video|undefined)[] = ...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Typescript 오류 :: '번호'유형은 'never'유형에 할당 할 수 없습니다.

분류에서Dev

Angular TypeScript 오류- 'number'유형은 'any []'유형에 할당 할 수 없습니다.

분류에서Dev

각도 오류 : 'void'유형은 'AbstractControl'유형에 할당 할 수 없습니다.

분류에서Dev

오류 : 'void'유형은 'ReactNode'유형에 할당 할 수 없습니다.

분류에서Dev

Typescript 오류 : '번호'유형은 'never'유형에 할당 할 수 없습니다.

분류에서Dev

TypeScript 오류 : '() => boolean'유형은 'boolean'유형에 할당 할 수 없습니다.

분류에서Dev

오류 : 'void'유형은 'HttpEvent <any>'유형에 할당 할 수 없습니다.

분류에서Dev

Typescript : 'null'유형은 유형 오류에 할당 할 수 없습니다.

분류에서Dev

Angular 10 오류 유형 오류 : 정의되지 않은 속성 (var)을 설정할 수 없습니다.

분류에서Dev

각도 오류 유형 오류 : 정의되지 않은 '이름'속성을 설정할 수 없습니다.

분류에서Dev

오디오를 준비 할 수 없습니다. 오디오 '속성'정의되지 않음

분류에서Dev

오디오를 준비 할 수 없습니다. 오디오 '속성'정의되지 않음

분류에서Dev

유형 오류 : 정의되지 않은 것은 함수가 아닙니다-Cloud Functions의 Promise.all () 오류

분류에서Dev

expressjs 유형 오류 : 정의되지 않은 '세션'속성을 설정할 수 없습니다.

분류에서Dev

유형 오류 : 정의되지 않은 angularjs의 mehod get을 호출 할 수 없습니다.

분류에서Dev

유형의 typescript 수정 오류 인수는 할당 할 수 없습니다.

분류에서Dev

오류 : 'TextEditingController'인수 유형은 FLUTTER에서 매개 변수 유형 'String'에 할당 할 수 없습니다.

분류에서Dev

Swift xcode 두 가지 오류 : 'ShapeType'유형의 값을 "ShapeButton.ShapeType"유형에 할당 할 수 없습니다.

분류에서Dev

Typescript 오류 가져 오기 : 'any []'유형은 'never []'유형에 할당 할 수 없습니다. TS2345

분류에서Dev

오류 유형 오류 : 새 사용자 구성 요소에서 정의되지 않은 '이름'속성을 설정할 수 없습니다.

분류에서Dev

Flutter SQLlite 인수 유형 'Future <String>'은 매개 변수 유형 'String'오류에 할당 할 수 없습니다.

분류에서Dev

Swift : 'int'유형의 값을 'int'유형의 값에 할당 할 수 없습니다. 오류

분류에서Dev

오류 '형식의 인수 유형 변수의 범위 내에 있지 않은'확인할 수 없음

분류에서Dev

오류 : 반환 유형에 새 유형을 정의 할 수 없습니다.

분류에서Dev

TextArea의 React Typescript 오류 : '문자열'유형을 유형 번호에 할당 할 수 없습니다.

분류에서Dev

FTP Java 프로그램의 런타임 오류 : 유형 top은 'java / net / socket'에 할당 할 수 없습니다.

분류에서Dev

'문자열'유형은 '정의되지 않음'유형에 할당 할 수 없습니다.

분류에서Dev

오류 TS2322 : '이벤트'유형은 '부울'유형에 할당 할 수 없습니다.

분류에서Dev

각도 오류 유형 문자열은 유형에 할당 할 수 없습니다.

Related 관련 기사

  1. 1

    Typescript 오류 :: '번호'유형은 'never'유형에 할당 할 수 없습니다.

  2. 2

    Angular TypeScript 오류- 'number'유형은 'any []'유형에 할당 할 수 없습니다.

  3. 3

    각도 오류 : 'void'유형은 'AbstractControl'유형에 할당 할 수 없습니다.

  4. 4

    오류 : 'void'유형은 'ReactNode'유형에 할당 할 수 없습니다.

  5. 5

    Typescript 오류 : '번호'유형은 'never'유형에 할당 할 수 없습니다.

  6. 6

    TypeScript 오류 : '() => boolean'유형은 'boolean'유형에 할당 할 수 없습니다.

  7. 7

    오류 : 'void'유형은 'HttpEvent <any>'유형에 할당 할 수 없습니다.

  8. 8

    Typescript : 'null'유형은 유형 오류에 할당 할 수 없습니다.

  9. 9

    Angular 10 오류 유형 오류 : 정의되지 않은 속성 (var)을 설정할 수 없습니다.

  10. 10

    각도 오류 유형 오류 : 정의되지 않은 '이름'속성을 설정할 수 없습니다.

  11. 11

    오디오를 준비 할 수 없습니다. 오디오 '속성'정의되지 않음

  12. 12

    오디오를 준비 할 수 없습니다. 오디오 '속성'정의되지 않음

  13. 13

    유형 오류 : 정의되지 않은 것은 함수가 아닙니다-Cloud Functions의 Promise.all () 오류

  14. 14

    expressjs 유형 오류 : 정의되지 않은 '세션'속성을 설정할 수 없습니다.

  15. 15

    유형 오류 : 정의되지 않은 angularjs의 mehod get을 호출 할 수 없습니다.

  16. 16

    유형의 typescript 수정 오류 인수는 할당 할 수 없습니다.

  17. 17

    오류 : 'TextEditingController'인수 유형은 FLUTTER에서 매개 변수 유형 'String'에 할당 할 수 없습니다.

  18. 18

    Swift xcode 두 가지 오류 : 'ShapeType'유형의 값을 "ShapeButton.ShapeType"유형에 할당 할 수 없습니다.

  19. 19

    Typescript 오류 가져 오기 : 'any []'유형은 'never []'유형에 할당 할 수 없습니다. TS2345

  20. 20

    오류 유형 오류 : 새 사용자 구성 요소에서 정의되지 않은 '이름'속성을 설정할 수 없습니다.

  21. 21

    Flutter SQLlite 인수 유형 'Future <String>'은 매개 변수 유형 'String'오류에 할당 할 수 없습니다.

  22. 22

    Swift : 'int'유형의 값을 'int'유형의 값에 할당 할 수 없습니다. 오류

  23. 23

    오류 '형식의 인수 유형 변수의 범위 내에 있지 않은'확인할 수 없음

  24. 24

    오류 : 반환 유형에 새 유형을 정의 할 수 없습니다.

  25. 25

    TextArea의 React Typescript 오류 : '문자열'유형을 유형 번호에 할당 할 수 없습니다.

  26. 26

    FTP Java 프로그램의 런타임 오류 : 유형 top은 'java / net / socket'에 할당 할 수 없습니다.

  27. 27

    '문자열'유형은 '정의되지 않음'유형에 할당 할 수 없습니다.

  28. 28

    오류 TS2322 : '이벤트'유형은 '부울'유형에 할당 할 수 없습니다.

  29. 29

    각도 오류 유형 문자열은 유형에 할당 할 수 없습니다.

뜨겁다태그

보관