source

TypeScript 문자열에 번호 지정

lovecheck 2022. 12. 28. 21:48
반응형

TypeScript 문자열에 번호 지정

Typescript에서 숫자에서 문자열로 캐스팅하는 가장 좋은 방법(있는 경우)은 무엇입니까?

var page_number:number = 3;
window.location.hash = page_number; 

이 경우 컴파일러는 다음 오류를 발생시킵니다.

유형 'number'는 유형 'string'에 할당할 수 없습니다.

왜냐면location.hash는 문자열입니다.

window.location.hash = ""+page_number; //casting using "" literal
window.location.hash = String(number); //casting creating using the String() function

그럼 어떤 방법이 더 나을까요?

"캐스팅"은 변환과 다릅니다.이 경우,window.location.hash는 번호를 문자열에 자동 등록합니다.그러나 TypeScript 컴파일 오류를 피하기 위해 문자열 변환을 직접 수행할 수 있습니다.

window.location.hash = ""+page_number; 
window.location.hash = String(page_number); 

이러한 변환은, 다음의 경우에 에러가 발생하지 않게 하는 경우에 최적입니다.page_numbernull또는undefined.반면에.page_number.toString()그리고.page_number.toLocaleString()할 때 던진다page_numbernull또는undefined.

변환이 아닌 캐스트만 필요한 경우 TypeScript 문자열에 캐스트하는 방법은 다음과 같습니다.

window.location.hash = <string>page_number; 
// or 
window.location.hash = page_number as string;

<string>또는as string캐스트 어노테이션은 TypeScript 컴파일러에게 처리하도록 지시합니다.page_number컴파일 시 문자열로 사용되며 실행 시 변환되지 않습니다.

그러나 문자열에 번호를 할당할 수 없다고 컴파일러가 불평합니다.먼저 캐스팅을 하셔야 할 것 같습니다.<any>, 그 후 ~로<string>:

window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;

따라서 런타임 및 컴파일 시 유형을 처리하는 변환만 하면 됩니다.

window.location.hash = String(page_number); 

(문자열 번호 캐스팅 문제를 잡아주신 @RuslanPolutsygan님 감사합니다.)

또는 를 사용합니다.다음은 예를 제시하겠습니다.

var page_number:number = 3;
window.location.hash = page_number.toLocaleString();

이 경우 에러가 발생합니다.page_numbernull또는undefined. 상황에 맞는 수정 프로그램을 선택하지 않으면 다음과 같이 하십시오.

// Fix 1:
window.location.hash = (page_number || 1).toLocaleString();

// Fix 2a:
window.location.hash = !page_number ? "1" page_number.toLocaleString();

// Fix 2b (allows page_number to be zero):
window.location.hash = (page_number !== 0 && !page_number) ? "1" page_number.toLocaleString();

타이프스크립트에는 다음 구문을 사용할 수도 있습니다.뒷면 체크 표시에 주의해 주세요.

window.location.hash = `${page_number}`

이것은 몇 가지 지름길이다.

any_type = "" + any_type; 
any_type = String(any_type); 
any_type = `${any_type}`;

window.location을 클릭합니다.해시는string, 다음과 같이 합니다.

var page_number: number = 3;
window.location.hash = String(page_number); 

사용방법:page_number?.toString()

const page_number = 3;

window.location을 클릭합니다.해시 = page_number as string; // 오류

"유형 'number'를 유형 'string'으로 변환하는 것은 두 유형 모두 다른 유형과 충분히 겹치기 때문에 실수일 수 있습니다.이것이 의도적인 경우 먼저 식을 "unknown"으로 변환하십시오." -> 번호를 문자열에 입력하려고 하면 이 오류가 발생합니다.먼저 알 수 없음으로 변환한 다음 문자열로 변환합니다.

window.location을 클릭합니다.해시 =(page_number를 알 수 없음)을 문자열로 지정, // 올바른 방법

언급URL : https://stackoverflow.com/questions/32554624/casting-a-number-to-a-string-in-typescript

반응형