Nullity Guard는 forEach 루프 내부에서 작동하지 않습니다.

페드로 소보 타

아래 코드에서 두 번째 가드는 루프 ab.cv내부의 비 -nullity를 주장 할 수 없으며 forEach로컬 동일한 가드의 주석 처리를 제거하면 작동합니다. 왜 그래야만하지?

type B = {|
    bv: B[], 
    cv: ?number
|}

let ab: B = {bv: [], cv: 1}
if (ab.cv) {          // First guard
  const a = ab.cv + 1 // Works
}
var a2;
if (ab.cv) {                                           // Second guard
  ab.bv.forEach(b => {/*if (ab.cv) */a2 = ab.cv + 1})  // Doesn't work except if uncommented
                                                       // Cannot perform arithmetic operation because null or undefined [1] is not a number.
}
알렉세이 L.

흐름은 forEach콜백 전에 수행 된 구체화를 무효화 합니다. 콜백은 함수 호출로 간주되며 모든 함수 호출은 구체화를 무효화합니다. 문서FAQ 에서 이에 대한 자세한 정보

이 문제를 해결하는 한 가지 방법은 로컬 변수에 확인 된 값을 저장하는 것입니다.

const cv = ab.cv;
var a2;

if (cv) {
  ab.bv.forEach(b => {a2 = cv + 1})
}

시험

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

반복이 foreach 루프 내부로 이동하는 동안 인쇄가 작동하지 않습니다.

분류에서Dev

Foreach 루프가 PowerShell에서 작동하지 않습니다.

분류에서Dev

SwiftUI | VStack은 ForEach 루프 내에서 작동하지 않습니다.

분류에서Dev

SwiftUI | VStack은 ForEach 루프 내에서 작동하지 않습니다.

분류에서Dev

이 예제에서는 QT의 foreach 루프가 작동하지 않습니까?

분류에서Dev

foreach 루프에서 작동하지 않는 고유 배열

분류에서Dev

Wordpress foreach 루프에서 작동하지 않는 'rand'로 주문

분류에서Dev

forEach 루프 내의 for 루프 내에서 Array.push가 작동하지 않습니다.

분류에서Dev

내 드롭 다운 기능이 foreach 루프에서 작동하지 않는 이유는 무엇입니까? PHP

분류에서Dev

Foreach 루프가 PHP의 cronjob에서 작동하지 않습니다.

분류에서Dev

array_push가 foreach 루프에서 작동하지 않습니다.

분류에서Dev

jQuery-hover는 for 루프에서 작동하지 않습니다.

분류에서Dev

parseInt는 루프에서 잘 작동하지 않습니다.

분류에서Dev

foreach 루프 쿼리 외부가 제대로 작동하지 않습니다.

분류에서Dev

작동하지 않는 foreach 루프 내에 onclick 이벤트 리스너 추가

분류에서Dev

For 루프는 파이썬 함수 내에서 작동하지 않습니다.

분류에서Dev

루프는 기능 외부에서 작동하지만 기능에서는 작동하지 않습니다.

분류에서Dev

for 루프를 작동하지 않는 foreach 루프로 전환

분류에서Dev

작동하지 않는 PHP에서 foreach 루프의 세션 계산

분류에서Dev

lop이 루프 끝에서 작동하는 동안 Java 다시 그리기가 내부에서 작동하지 않습니다.

분류에서Dev

프리즘 모듈 내부에서는 AutowireViewModel이 작동하지 않습니다.

분류에서Dev

코드는 입력 내부에 쓰여진 경우에만 작동하지만 while 루프에서는 에코와 함께 작동하지 않습니다.

분류에서Dev

angular.forEach에서 조건부는 작동하지 않습니다.

분류에서Dev

C ++ While (1) 루프는 내부에서 if 문을 호출하지 않습니다.

분류에서Dev

preg_replace가 루프 내부에서 작동하지 않습니다.

분류에서Dev

forEach 루프의 Firestore add ()가 작동하지 않습니다.

분류에서Dev

PHP foreach 루프가 작동하지 않습니다.

분류에서Dev

Codeigniter 단순 foreach 루프가 작동하지 않습니다.

분류에서Dev

PDO foreach 루프가 작동하지 않습니다.

Related 관련 기사

  1. 1

    반복이 foreach 루프 내부로 이동하는 동안 인쇄가 작동하지 않습니다.

  2. 2

    Foreach 루프가 PowerShell에서 작동하지 않습니다.

  3. 3

    SwiftUI | VStack은 ForEach 루프 내에서 작동하지 않습니다.

  4. 4

    SwiftUI | VStack은 ForEach 루프 내에서 작동하지 않습니다.

  5. 5

    이 예제에서는 QT의 foreach 루프가 작동하지 않습니까?

  6. 6

    foreach 루프에서 작동하지 않는 고유 배열

  7. 7

    Wordpress foreach 루프에서 작동하지 않는 'rand'로 주문

  8. 8

    forEach 루프 내의 for 루프 내에서 Array.push가 작동하지 않습니다.

  9. 9

    내 드롭 다운 기능이 foreach 루프에서 작동하지 않는 이유는 무엇입니까? PHP

  10. 10

    Foreach 루프가 PHP의 cronjob에서 작동하지 않습니다.

  11. 11

    array_push가 foreach 루프에서 작동하지 않습니다.

  12. 12

    jQuery-hover는 for 루프에서 작동하지 않습니다.

  13. 13

    parseInt는 루프에서 잘 작동하지 않습니다.

  14. 14

    foreach 루프 쿼리 외부가 제대로 작동하지 않습니다.

  15. 15

    작동하지 않는 foreach 루프 내에 onclick 이벤트 리스너 추가

  16. 16

    For 루프는 파이썬 함수 내에서 작동하지 않습니다.

  17. 17

    루프는 기능 외부에서 작동하지만 기능에서는 작동하지 않습니다.

  18. 18

    for 루프를 작동하지 않는 foreach 루프로 전환

  19. 19

    작동하지 않는 PHP에서 foreach 루프의 세션 계산

  20. 20

    lop이 루프 끝에서 작동하는 동안 Java 다시 그리기가 내부에서 작동하지 않습니다.

  21. 21

    프리즘 모듈 내부에서는 AutowireViewModel이 작동하지 않습니다.

  22. 22

    코드는 입력 내부에 쓰여진 경우에만 작동하지만 while 루프에서는 에코와 함께 작동하지 않습니다.

  23. 23

    angular.forEach에서 조건부는 작동하지 않습니다.

  24. 24

    C ++ While (1) 루프는 내부에서 if 문을 호출하지 않습니다.

  25. 25

    preg_replace가 루프 내부에서 작동하지 않습니다.

  26. 26

    forEach 루프의 Firestore add ()가 작동하지 않습니다.

  27. 27

    PHP foreach 루프가 작동하지 않습니다.

  28. 28

    Codeigniter 단순 foreach 루프가 작동하지 않습니다.

  29. 29

    PDO foreach 루프가 작동하지 않습니다.

뜨겁다태그

보관