TypeScript에서 어떤 유형도 사용하지 말아야 하는 이유

TypeScript는 훌륭한 프로그래밍 언어입니다.TypeScript의 유형 레이어는 JavaScript 위에 있으며 코드를 작성할 때 프로그램이 올바른 유형을 사용하는지 확인하여 실행 시 잠재적인 문제를 방지합니다.
JavaScript에서는 모든 유형을 변수에 재할당하거나 존재하지 않는 속성에 액세스할 수 있습니다.TypeScript를 사용하지 않습니다. TypeScript는 유형을 검사하기 때문에 변수가 올바른 유형의 값만 있거나 객체의 속성이 실제로 존재하는지 확인합니다.
예를 들어 아래의 코드를 봅시다.
let foo: number = 42;
foo = "bli";
이 코드는 문자열을 숫자만 포함하는 변수에 분배하기 때문에 컴파일할 때 다음과 같은 오류가 발생할 수 있습니다.

올바른 형식을 사용하지 않았기 때문에 형식 스크립트가 잘못되었습니다.
개발 환경에 오류가 발생하여 강조 표시될 수도 있습니다.

무엇이 있습니까?


특수 유형any은 TypeScript 변수가 모든 유형일 수 있음을 알려주는 데 사용됩니다.형식 any 의 변수는 문자열, 숫자 또는 기타 모든 것일 수 있습니다.
만약 이전의 코드 블록이any를 사용하도록 업데이트된다면, 문자열을 할당할 수 있습니다. 아래와 같습니다.any 주석이 있는 변수에 모든 유형을 재할당할 수 있습니다.

너는 왜 그것을 사용하지 않니?


type914에서 제공하는 스크립트를 사용하여 모든 종류의 주요 원인을 삭제합니다.any를 사용하면 추적과 디버깅이 어려운 문제에 직면하게 될 것입니다. 특히 생산 과정에서 코드를 배치한 후에요.
다시 말하면 TypeScript에서 any 를 변수 형식으로 사용하는 것은 자바스크립트를 작성하는 것과 유사하다.

또 어떤 선택이 있을까요?


다른 선택이 있었으면 좋겠어요!

1. 올바른 유형 사용


첫 번째(또는 가장 좋은 것)는 변수를 위해 정확한 유형을 사용하는 것이다.개발자는any를 자주 사용합니다. 왜냐하면 그들이 사용하는 함수는 제3자 라이브러리나 외부 사이트(예를 들어 Stackoverflow)에서 왔기 때문에 어떤 유형으로 되돌아오는지 모릅니다!
시간을 절약하고 사용한 유형을 이해하는 것을 피하기 위해 개발자는 변수 유형에 대해any를 사용했다. 이것은 나중에 코드를 업데이트할 때 문제가 발생할 수 있다. (제3자 라이브러리에서 되돌아오는 대상 유형이 바뀌면 어떻게 합니까? 라이브러리의 새 수정판에 방문하여 사용하지 않는 속성을 추천하지 않으면 어떻게 합니까?)
반대로 되돌아오는 유형을 이해하고 그에 상응하는 변수를 입력하는 것이 중요하다.다른 곳에서 복사/붙여넣은 코드를 이해하는 데 시간이 걸리고, 코드에 집적할 라이브러리를 이해하는 데 시간이 걸린다.사용하는 유형을 이해하면 시간을 절약하고 오류를 피할 수 있지만, 이 코드를 이해하고, 처리 중인 문제를 해결할 수 있습니다.

2. 모든


두 번째 선택은 유형을 모르고 보안을 유지하기를 원할 때unknown.unknown를 사용할 때 모든 유형을 하나의 변수에 연결할 수 있지만 unknown 유형의 변수를 다른 유형의 변수에 분배할 수 없습니다.
TypeScript 언어에 unknown을 도입한 경우Pull Request:

This PR adds a new top type unknown which is the type-safe counterpart of any. Anything is assignable to unknown, but unknown isn't assignable to anything but itself and any without a type assertion or a control flow based narrowing. Likewise, no operations are permitted on an unknown without first asserting or narrowing to a more specific type.


구체적인 예를 들자.다음 코드는 unknown를 사용할 때 유효합니다. 이것은 완전히 합법적인 코드 블록입니다. 이것은 문제가 있습니다. 이것은 TypeScript의 모든 유형 검사 기능을 사용하지 않고 미래에 잠재적인 유형 문제에 직면하게 하기 때문입니다.
let foo: any = 42;
let bar: string = foo;
그러나 any(다음 참조)의 같은 코드를 사용하면 unknown 유형의 변수를 유형 의 변수에 분배할 수 없기 때문에 작용하지 않는다.
let foo: unknown = 42;
let bar: string = foo;

코드 라이브러리에서 unknown을 사용하지 않았는지 어떻게 검사합니까?


Codiga 모든 TypeScript 코드를 검사하여 유형을 사용하지 않도록 합니다.통합 개발 환경(IDE)에서 코드를 확인하거나 GitHub, GitLab 또는 Bitbucket에서 요청(PR)을 확인합니다.
VS 코드 또는 IntelliJ 환경에서 직접 사용할 수 있으며 통합 플러그인을 사용하여 TypeScript 코드를 몇 초 안에 확인할 수 있습니다.
  • Codiga plugin for VS Code
  • Codiga plugin for JetBrains
  • 마지막으로 GitHub의 모든 Pull 요청에서 같은 규칙을 검사할 수 있습니다.설치Code Inspector GitHub app를 통해 모든 TypeScript 코드가 코드가 바뀔 때마다 제대로 개발되었는지 확인할 수 있습니다.

    좋은 웹페이지 즐겨찾기