본문 바로가기
C++ 200제/코딩 IT 정보

TypeScript 강좌 12. string Literal Primitive (문자열)

by vicddory 2020. 2. 6.


TypeScript string literal (스트링 리터럴)

타입스크립트 string 리터럴은 문자열을 표현합니다. 작은따옴표, 큰따옴표로 묶어 표현할 수 있습니다. 작은따옴표와 큰따옴표 중간에 줄 바꿈이 들어가면 "끝이 없다"고 오류가 납니다만, 역 따옴표로 여러 줄을 묶을 수 있어서 여러 줄 텍스트를 표현할 수 있습니다.


JavaScript는 UTF-16이라는 문자 코드를 채용하고 있습니다. Java와 같습니다. 이모티콘(그림 문자) 등 일부 문자열은 하나의 문자로 데이터를 취급하지 못하여 두 문자로 표현할 수 있습니다. 이를 게이트 짝(게이트 쌍)이라고 합니다.

// 값을 표시

// 싱글 쿼트, 더블 쿼트, 백 쿼트로 묶기

console.log('hello world');


// 변수에 대입. 변수 형은 string

const name: string = "future";


// 복수행 (여러 줄)

// 싱글 쿼트, 더블 쿼트면 에러 발생

// error TS1002: Unterminated string literal.

const address = '서울시

중구';


// 백쿼트면 OK. 소스 코드에서의 행은 데이터에서도 행으로 표현됨

const address = `서울시

중구`;


// 다른 typescript 데이터형으로 변환

console.log(parseInt('0100', 10)); // 100이 됨

console.log(Boolean(name));        // 빈 문자열은 false, 그 외에는 true


// 다른 데이터형을 string으로 변환

const year = 2019;

console.log((2019).toString(2));     // number는 toString 인수로 2진수~36진수 표현

console.log((true).toString());      // boolean형을 'true'/'false' 문자열로 변환

console.log(Stirng(false));          // 이렇게도 가능


범위 액세스 등 문자열 일부를 취급하려면 이모티콘의 일부만 접근할 가능성이 있다는 점은 중요합니다. string literal 사용 시, 문자열 로직을 테스트하는 경우엔 이모티콘을 넣어 보는 것도 좋습니다.


문자열 메서드

문자열은 내부에 있는 일부 문자열을 가공하거나 추출할 수 있는 방법이 있습니다. TypeScript 형식 정의 파일에도 존재하지만, 언어 표준이 아니므로 여기에서는 설명하지 않습니다.



문자열 연결(결합)

기존 JavaScript는 다른 언어에 존재하는 printf 계열의 함수가 없습니다. 그래서 문자열을 "+" 또는 .join()(배열)으로 결합했는데요. 요즘은 문자열 템플릿 string literal이 있으므로 결합은 쉽게 처리할 수 있습니다. printf와 같은 수치 변환 등의 포맷은 없어서 어디까지나 문자열 결합을 스마트하게 처리하는 겁니다.


// 예전 자바스크립트 코드

console.log("[Debug]:" + variable);


// 요즘 타입스크립트 코드

console.log(`[Debug]: ${variable}`);


typescript 문자열 템플릿 리터럴

보시면 압니다. 문자열 중간에 플레이스 홀더에 삽입된 함수 반환값, 변수를 인수로 받아 텍스트로 변환합니다. 타입스크립트, 자바스크립트 공통입니다.


태그 템플릿 string literal


function i18n(texts, ...placeholders) {

  // texts = ['작은 동물은', '아주 귀여워요']

  // placeholders = ['밥 먹을 때']

  return // 번역 처리

}


const hobby = "밥 먹을 때"

console.log(i18n`작은 동물은${hobby} 아주 귀여워요`);



미완성 강좌 글입니다 ...


댓글