Typescript primitive type: type "number" 와 "Number" (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];
}
}
TypeScript Do 및 Don'ts의 지침에 따라 Ryan의 답변을 늘리려면:
그런 타입은 절대 사용하지 마세요.
Number
,String
,Boolean
,Symbol
, 또는Object
이러한 유형은 JavaScript 코드에서 거의 적절하게 사용되지 않는 비 프라이머리 박스형 개체를 나타냅니다./* WRONG */ function reverse(s: String): String;
유형을 사용합니다.
number
,string
,boolean
,그리고.symbol
./* OK */ function reverse(s: string): string;
JavaScript에는 원시 유형(숫자, 문자열 등)과 객체 유형(실행 시 매니페스트인 숫자, 문자열 등)의 개념이 있습니다.TypeScript 유형number
그리고.Number
각각 참조해 주세요.JavaScript는 보통 오브젝트 타입을 원시적인 동등한 오브젝트로 강제하거나 그 반대로 강제합니다.
var x = new Number(34);
> undefined
x
> Number {}
x + 1
> 35
TypeScript 유형의 시스템 규칙은 다음과 같이 처리합니다(스펙 섹션 3.7).
하위 유형, 슈퍼 유형 및 할당 호환성 관계를 결정하기 위해 Number, Boolean 및 String 원시 유형은 각각 'Number', 'Boolean' 및 'String' 인터페이스와 동일한 속성을 가진 개체 유형으로 취급됩니다.
TypeScript 문서에는 다음과 같이 기술되어 있습니다.
var Number: NumberConstructor
(value?: any) => number
모든 종류의 수를 나타내는 개체입니다.모든 JavaScript 번호는 64비트 부동소수점 숫자입니다.
말 그대로, 가져가라any
파라미터 및 반환번호 또는null
값이 숫자인지 아닌지 쉽게 확인할 수 있습니다.
Number("1234"); // 1234
Number("1234.54") // 1234.54
Number("-1234.54") // -1234.54
Number("1234.54.33") // null
Number("any-non-numeric") // null
따라서 다음과 같이 간단히 숫자를 확인할 수 있습니다.
if(Number(val)){
console.log('val is a number');
} else {
console.log('Not a number');
}
언급URL : https://stackoverflow.com/questions/15487220/typescript-primitive-types-any-difference-between-the-types-number-and-numbe
'programing' 카테고리의 다른 글
HTML의 여러 클래스 속성 (0) | 2023.03.13 |
---|---|
리액션 네이티브 스타일. 폭: 백분율 - 숫자 (0) | 2023.03.13 |
JSON API Wordpress에서 CORS 사용 (0) | 2023.03.13 |
복잡하지만 "표준" 웹 앱에 php 프레임워크 대신 Wordpress를 사용하면 무엇을 잃게 됩니까?트레이드오프가 가치가 있을까요? (0) | 2023.03.13 |
여러 행을 한 행에 집약하는 Oracle SQL 쿼리가 있습니까? (0) | 2023.03.13 |