Typescript 및 유형 추론 : 유효성 검사 문제

패트릭 다 실바

현재 다음과 유사한 기능을 수행하고 있습니다 (토론을 위해 최소한의 작업 예제를 작성했습니다).

interface Variable {
  someMethod: () => void
}

const validateVariable(variable: Variable | undefined) {
  if(!variable) {
    throw new Error('Variable is undefined!')
  }
}

const doSomething = async (): void => { 
  // maybeGetSomething returns a Variable or undefined
  // depends on the database, so both cases are definitely possible
  const variable: (Variable | undefined) = await maybeGetSomething()

  validateVariable(variable)

  variable.someMethod()
}

그러나 Typescript variable는 정의되지 않았을 수 있다고 불평합니다 . 나는의 코드를 넣어의 생각처럼 안 validateVariabledoSomething내 경우에는 검증 내가 재사용 할 수 있어야 아닌 사소한 기능이기 때문이다. 또한 Typescript가 유형에 대해 불평하지 않도록 새 변수를 정의하는 것도 어리석은 느낌이 들었습니다. 유효성 검사 후에는 어쨌든 Variable 유형 만 가질 수 있기 때문입니다 (코드 validateVariable(variable)가 던져지지 않는 한 줄을 통과 할 수 없습니다 . 이 경우 변수에 적절한 유형이 있음).

이 작업을 수행하는 좋은 방법은 무엇입니까? 나는 여전히 Typescript에 대해 많은 것을 배우고 있기 때문에 내 코드의 구조를 변경할 수 있습니다.

니콜라스 타워

validateVariable특별한 반환 유형 을 제공함으로써 , 함수가 (던지기와 반대로) 반환하면 변수를 정의해야한다고 typescript에 알릴 수 있습니다.

function validateVariable(variable: Variable | undefined): asserts variable is Variable {
  if(!variable) {
    throw new Error('Variable is undefined!')
  }
}

당신이 할 경우, 후 전화 validateVariable(variable)의 유형 variable단지로 축소됩니다 Variable.

놀이터 링크

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Typescript 공용체 유형 및 추가 유형 검사없이 다른 속성 추론

분류에서Dev

Java에서 제네릭 및 유형 추론 사용 문제

분류에서Dev

Spring Forms 및 유효성 검사 문제

분류에서Dev

JavaScript에서 문자열 및 유형 변환 유효성 검사

분류에서Dev

TypeScript : 문자열 리터럴 사용시 유형 추론

분류에서Dev

입력, Angular2 및 typescript의 유효성을 검사하는 지시문 추가

분류에서Dev

isArray 검사 및 유추 된 유형이 TypeScript에 없음

분류에서Dev

Haskell Typeclass 유형 제약 및 추론

분류에서Dev

복합 유형의 TypeScript 문자열 공용체 유형 추론 문제

분류에서Dev

typescript로 유형을 추론하는 문제

분류에서Dev

TypeScript 일반 유형 추론

분류에서Dev

Typescript 부분 유형 추론

분류에서Dev

Typescript 게터 유형 추론

분류에서Dev

Typescript 게터 유형 추론

분류에서Dev

jQuery 유효성 검사 성공 또는 실패시 HTML 추가 및 제거

분류에서Dev

kubernetes ingress TLS 유효성 검사 및 리디렉션 문제

분류에서Dev

typescript에서 확장 유형을 사용한 유형 추론

분류에서Dev

Typescript : 제네릭 유형에 대한 오버로딩 및 검사

분류에서Dev

제네릭을 사용하여 유형을 추론하는 Typescript 컴파일러

분류에서Dev

유효성 검사 및 ComplexType

분류에서Dev

유효성 검사 규칙 및 메시지 추가 또는 제거

분류에서Dev

대문자 및 숫자에 대해서만 유효성 검사 추가

분류에서Dev

typescript의 함수 오버로딩 및 유형 추론

분류에서Dev

ng 메시지 및 typescript를 사용하는 사용자 정의 유효성 검사 지시문

분류에서Dev

문자열 형식 유효성 검사

분류에서Dev

RxJ 및 typescript를 사용한 유형 추론에 대한 흥미로운 이야기

분류에서Dev

typescript에서 중첩 제네릭 유형을 추론합니까?

분류에서Dev

Typescript의 문자열을 기반으로 유형 추론

분류에서Dev

vulkan 유효성 검사 계층 문제

Related 관련 기사

  1. 1

    Typescript 공용체 유형 및 추가 유형 검사없이 다른 속성 추론

  2. 2

    Java에서 제네릭 및 유형 추론 사용 문제

  3. 3

    Spring Forms 및 유효성 검사 문제

  4. 4

    JavaScript에서 문자열 및 유형 변환 유효성 검사

  5. 5

    TypeScript : 문자열 리터럴 사용시 유형 추론

  6. 6

    입력, Angular2 및 typescript의 유효성을 검사하는 지시문 추가

  7. 7

    isArray 검사 및 유추 된 유형이 TypeScript에 없음

  8. 8

    Haskell Typeclass 유형 제약 및 추론

  9. 9

    복합 유형의 TypeScript 문자열 공용체 유형 추론 문제

  10. 10

    typescript로 유형을 추론하는 문제

  11. 11

    TypeScript 일반 유형 추론

  12. 12

    Typescript 부분 유형 추론

  13. 13

    Typescript 게터 유형 추론

  14. 14

    Typescript 게터 유형 추론

  15. 15

    jQuery 유효성 검사 성공 또는 실패시 HTML 추가 및 제거

  16. 16

    kubernetes ingress TLS 유효성 검사 및 리디렉션 문제

  17. 17

    typescript에서 확장 유형을 사용한 유형 추론

  18. 18

    Typescript : 제네릭 유형에 대한 오버로딩 및 검사

  19. 19

    제네릭을 사용하여 유형을 추론하는 Typescript 컴파일러

  20. 20

    유효성 검사 및 ComplexType

  21. 21

    유효성 검사 규칙 및 메시지 추가 또는 제거

  22. 22

    대문자 및 숫자에 대해서만 유효성 검사 추가

  23. 23

    typescript의 함수 오버로딩 및 유형 추론

  24. 24

    ng 메시지 및 typescript를 사용하는 사용자 정의 유효성 검사 지시문

  25. 25

    문자열 형식 유효성 검사

  26. 26

    RxJ 및 typescript를 사용한 유형 추론에 대한 흥미로운 이야기

  27. 27

    typescript에서 중첩 제네릭 유형을 추론합니까?

  28. 28

    Typescript의 문자열을 기반으로 유형 추론

  29. 29

    vulkan 유효성 검사 계층 문제

뜨겁다태그

보관