Typescript 기본 유형 : "숫자"유형과 "숫자"유형간에 차이가 있습니까 (TSC는 대소 문자를 구분하지 않음)?
유형 매개 변수를 작성하려고 number
했지만 유형을 잘못 입력하여 Number
대신 작성 했습니다.
내 IDE (JetBrains WebStorm)에서 유형 Number
은 기본 유형에 사용되는 것과 동일한 색상으로 작성 number
되지만 클래스 이름 (알려 졌거나 알려지지 않음)을 쓰면 다른 색상을 사용하므로 어떻게 든 인식 할 수 있습니다. 철자가 틀린 유형을 올바른 / 거의 정확한 / 정확한 유형으로.
코드를 컴파일 할 때 예를 들어 컴파일러 Number
가라는 클래스를 찾을 수 없다고 불평하는 대신 TSC는 다음 오류 메시지를 작성합니다.
Illegal property access
그것은 그것 number
과 Number
둘 다 다른 유형으로 공존 한다는 것을 의미합니까 ?
이것이 사실이라면 그 클래스의 차이점은 무엇입니까?
그렇지 않은 경우 알 수없는 클래스에 대해 표시되는 것과 동일한 오류 메시지를 작성하지 않은 이유입니다 ( "현재 범위에 '번호'이름이 없습니다.").
다음은 코드입니다.
class Test
{
private myArray:string[] = ["Jack", "Jill", "John", "Joe", "Jeff"];
// THIS WORKS
public getValue(index:number):string
{
return this.myArray[index];
}
// THIS DOESN'T WORK: ILLEGAL PROPERTY ACCESS
public getAnotherValue(index:Number):string
{
return this.myArray[index];
}
}
JavaScript에는 기본 유형 (숫자, 문자열 등)과 객체 유형 (런타임에 매니페스트되는 숫자, 문자열 등) 의 개념이 있습니다 . TypeScript 유형 number
과 Number
각각 참조하십시오. 자바 스크립트는 일반적으로 객체 유형을 해당 원시 유형으로 강제 변환하거나 그 반대의 경우도 마찬가지입니다.
var x = new Number(34);
> undefined
x
> Number {}
x + 1
> 35
TypeScript 유형 시스템 규칙은 다음과 같이이를 처리합니다 (섹션 3.7 사양).
하위 유형, 상위 유형 및 할당 호환성 관계를 확인하기 위해 Number, Boolean 및 String 기본 유형은 각각 'Number', 'Boolean'및 'String'인터페이스와 동일한 속성을 가진 객체 유형으로 처리됩니다.
TypeScript Do 's and Don'ts의 지침으로 Ryan의 답변을 보강하려면 다음을 수행하십시오.
하지 마십시오 적 유형을 사용
Number
,String
,Boolean
,Symbol
, 또는Object
이 유형은 거의 자바 스크립트 코드를 적절하게 사용되지 않습니다 비 원시적 박스 객체를 참조하십시오./* WRONG */ function reverse(s: String): String;
마 유형을 사용
number
,string
,boolean
,와symbol
./* OK */ function reverse(s: string): string;
'Development Tip' 카테고리의 다른 글
JavaScript에서 잠금을 구현하는 방법 (0) | 2020.10.29 |
---|---|
Visual Studio 2010 용 서비스 팩 1이 설치되어 있는지 어떻게 알 수 있습니까? (0) | 2020.10.29 |
푸시 알림 서비스 인증서를 갱신하는 방법 (0) | 2020.10.29 |
ngFor 및 Async Pipe Angular 2와 함께 Observable Object의 배열 사용 (0) | 2020.10.29 |
Java 프로그램을 데몬 화하는 방법? (0) | 2020.10.29 |