TypeScript에서 문자열을 부울로 변환
하나의 데이터 유형을 다른 유형으로 변환하는 것은 동일한 입력이 주어지면 다른 형식으로 출력을 얻는 데 도움이 되므로 응용 프로그램을 만들 때 사용되는 일반적인 프로그래밍 접근 방식입니다.
예를 들어 숫자 데이터로 작업할 때 요청에서 숫자 유형의 요청 매개변수를 검색할 수 있으며 요청이 문자열 유형이므로 parseInt()
또는 parseFloat()
메서드를 사용하여 다음을 수행할 수 있습니다. 요청 매개변수를 Number
유형으로 변환하십시오.
이 접근 방식은 숫자 값으로 제한될 뿐만 아니라 한 데이터 유형을 다른 데이터 유형으로 변환하는 데 활용할 수 있는 다른 방법도 제공합니다. 이 자습서에서는 문자열 데이터 유형을 부울 데이터 유형으로 변환하는 데 사용할 수 있는 다양한 방법을 배웁니다.
TypeScript 프로젝트 만들기
WebStorm IDEA
를 열고 파일
> 새로 만들기
> 프로젝트
를 선택합니다. 열리는 창에서 왼쪽에서 Node.js
를 선택한 다음 오른쪽에서 프로젝트 이름
을 무제
에서 문자열에서 부울로
로 변경하거나 원하는 이름을 입력합니다.
이 프로젝트를 생성하기 전에 노드 해석기
와 패키지 관리자
의 나머지 두 섹션이 파일 시스템에서 자동으로 추가되도록 하려면 노드
를 설치했는지 확인하십시오.
프로젝트가 생성되면 키보드 단축키 Alt+F12를 사용하여 새 터미널 창을 열고 다음 명령을 사용하여 tsconfig.json
이라는 구성 파일을 만듭니다.
~/WebstormProjects/string-to-boolean$ tsc --init
파일 내용이 아래와 같은지 확인하십시오. 유일한 변경 사항은 TypeScript 코드를 변환하는 동안 오류가 발생하는 경우 JavaScript 파일이 생성되지 않도록 noEmitOnError: true
를 추가하는 것입니다.
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noEmitOnError": true,
"strict": true,
"noFallthroughCasesInSwitch": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
}
}
정규식을 사용하여 문자열 테스트
string-to-kotlin
폴더 아래 Main.ts
라는 파일을 만들고 다음 코드를 복사하여 파일에 붙여넣습니다.
const trueFlag = "true";
const falseFlag = "false";
function usingTestMethod(){
const flag = (/true/i).test(trueFlag);
console.log(flag);
}
usingTestMethod();
이 코드에서는 두 개의 문자열 플래그와 usingTestMethod()
라는 메서드를 만들었습니다. 문자열 플래그에는 각각 true
및 false
값이 포함됩니다. 이 튜토리얼의 모든 예제에서 사용되기 때문에 전역 변수로 선언됩니다.
usingTestMethod()
는 RegExp
인터페이스의 test()
메서드를 사용하여 문자열이 정규식과 일치하는 경우 true
를 반환하는 정규식 /true/i
를 생성합니다.
문자열이 정규 표현식과 일치하지 않으면 거짓
부울 결과를 얻게 됩니다. 문자열 플래그에 문자열 true
가 포함되어 있으므로 정규식은 일치하고 true
를 반환합니다.
다음 명령을 사용하여 이 코드를 실행합니다.
~/WebstormProjects/string-to-boolean$ tsc && node Main.js
tsc
명령은 TypeScript 코드를 JavaScript 코드로 변환하고 Main.js
라는 파일을 생성합니다. node
명령은 Main.js
파일을 실행하고 코드에서 반환된 값은 콘솔에 기록됩니다.
true
엄격한 같음 연산자 사용
usingTestMethod()
함수 뒤에 다음 코드를 복사하여 Main.ts
파일에 붙여넣습니다.
function usingStrictEqualityOperator(){
const flag = (trueFlag === "true");
console.log(flag);
}
usingStrictEqualityOperator();
이 메서드에서 우리는 엄격 항등 연산자 ===
를 사용하여 true
값을 포함하는 문자열 플래그가 인수로 전달하는 문자열과 정확히 같은지 여부를 테스트하는 usingStrictEqualityOperator()
라는 메서드를 만들었습니다.
등호 연산자 ==
를 사용하지 않는 이유는 무엇입니까? 이는 예상 결과와 다른 결과를 반환할 수 있는 형식 강제 변환을 방지하기 위한 것입니다.
두 문자열이 같기 때문에 완전 같음 연산자는 true
값을 반환합니다. 이전 예제에서 사용한 명령을 사용하여 이 코드를 실행하고 출력이 아래와 같은지 확인합니다.
true
JSON API의 parse()
메서드 사용
usingStrictEqualityOperator()
메서드 뒤에 다음 코드를 복사하여 Main.ts
파일에 붙여넣습니다.
function usingJSONParser(){
const flag = JSON.parse(falseFlag);
console.log(flag);
}
usingJSONParser();
이 코드에서는 부울 값에 대한 인수로 제공된 텍스트를 구문 분석하기 위해 JSON 인터페이스의 parse()
메서드를 사용하는 usingJSONParser()
라는 메서드를 만들었습니다.
이 경우 "true"
값이 있는 문자열 플래그를 포함하는 falseFlag
변수를 전달했으며 parse
메서드는 이 문자열에서 true
라는 부울 값을 반환합니다.
요구 사항에 따라 Object
, Array
, string
또는 number
를 반환할 수 있습니다.
이전 예제에서 사용한 명령을 사용하여 이 코드를 실행하고 출력이 아래와 같은지 확인합니다.
false
switch
문 사용
usingJSONParser()
메서드 뒤에 다음 코드를 복사하여 Main.ts
파일에 붙여넣습니다.
function flagResult(flag: any){
switch (flag){
case true:
case "true":
case 1:
case "1":
case "on":
case "yes":
return true;
default:
return false;
}
}
function usingSwitchStatement(){
const flag = flagResult(trueFlag);
console.log(flag);
}
usingSwitchStatement();
이 코드에서는 flagResult()
및 usingSwitchStatement()
라는 두 가지 메서드를 만들었습니다. flagResult()
메서드는 any
유형의 매개변수 하나를 허용합니다. 메서드에 전달된 인수에 따라 true
또는 false
의 부울 값이 반환됩니다.
메소드는 true
, "true"
, 1
, on
또는 yes
인수에 대해 true
값을 반환합니다. 그렇지 않으면 false
값이 반환됩니다.
usingSwitchStatement()
는 이 메서드를 사용하여 이 자습서의 시작 부분에서 선언된 문자열 플래그 trueFlag
의 부울 값을 가져옵니다. 변수 flag
에는 trueFlag
를 flagResult()
메서드에 전달한 결과가 포함됩니다.
이전 예제에서 사용한 명령을 사용하여 이 코드를 실행하고 출력이 아래와 같은지 확인합니다.
true
결론
이 자습서에서는 문자열 값을 부울 값으로 변환하는 방법을 배웠습니다. 우리가 다룬 주제에는 정규 표현식을 사용하여 문자열 테스트, 엄격 항등 연산자 사용, JSON API의 parse()
메서드 사용, 마지막으로 switch
문을 사용하는 방법이 포함됩니다.
라이브러리는 동일한 목표를 실현하는 데 도움이 될 수 있으며 개발자는 이 자습서에서 다루지 않은 다른 접근 방식을 사용할 수 있어야 합니다.
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub