[TypeScript] 문자열 다루기

문자열의 기초

TypeScript에서 문자열은 일반적으로 작은따옴표('')나 큰따옴표("")로 감싸서 작성합니다. 또한, new String() 생성자를 사용하여 문자열 객체를 생성할 수 있지만, 일반적으로 리터럴 방식이 선호됩니다.

// greeting.ts
const welcome: string = "어서오세요!";
const alertObj: String = new String("경고 메시지");

console.log(welcome);        // "어서오세요!"
console.log(alertObj.valueOf()); // "경고 메시지"

문자열 속성과 메서드

문자열 객체는 다양한 내장 속성과 메서드를 제공합니다.

주요 속성

  • length: 문자 수 반환
  • constructor: 생성자 함수에 대한 참조
// textInfo.ts
const description: string = "TypeScript 강의";
console.log("길이:", description.length); // 12

주요 메서드

  • charAt(index): 지정한 인덱스에 있는 문자를 반환합니다.
  • charCodeAt(index): 지정한 인덱스의 문자에 해당하는 유니코드 값을 반환합니다.
  • concat(...strings): 여러 문자열을 결합하여 새로운 문자열을 만듭니다.
  • indexOf(substr): 지정한 문자열이 처음 등장하는 위치를 반환하며, 없으면 -1을 반환합니다.
  • localeCompare(compareString): 두 문자열의 로케일(지역) 비교 결과를 숫자로 반환합니다.
  • match(regexp): 정규 표현식과 일치하는 부분을 배열로 반환합니다.
  • replace(searchValue, replaceValue): 정규 표현식이나 문자열을 찾아 대체 문자열로 치환합니다.
  • slice(start, end): 문자열의 일부분을 추출하여 반환합니다.
  • split(separator): 지정한 구분자를 기준으로 문자열을 나누어 배열로 반환합니다.
  • toLowerCase()/toUpperCase(): 문자열을 소문자 또는 대문자로 변환합니다.
  • toString(): 문자열 표현을 반환합니다.
  • valueOf(): 문자열의 원시 값을 반환합니다.
  • startsWith(str): 특정 문자열로 시작 여부
  • endsWith(str): 특정 문자열로 끝나는지 여부
  • includes(str): 문자열 포함 여부
  • substring(start, end): 부분 문자열 추출
  • trim(): 양쪽 공백 제거
// formatText.ts
function cleanMessage(text: string): string {
  const trimmed: string = text.trim();
  if (trimmed.startsWith("ERROR")) {
    return trimmed.replace("ERROR", "경고");
  }
  return trimmed;
}

const rawInput: string = "  ERROR: 시스템 점검 중";
console.log(cleanMessage(rawInput)); // "경고: 시스템 점검 중"

템플릿 문자열

ECMAScript 6(ES6)부터 도입된 템플릿 문자열은 백틱(``)을 사용하여 여러 줄의 문자열을 작성하거나, 변수 및 표현식을 쉽게 삽입할 수 있습니다.

// userMessage.ts
interface User {
  name: string;
  points: number;
}

function generateWelcome(user: User): string {
  return `안녕하세요, ${user.name}님!
포인트: ${user.points}점`;
}

const currentUser: User = { name: "지영", points: 1500 };
console.log(generateWelcome(currentUser));

문자열 리터럴 타입

문자열 리터럴 타입은 변수에 특정 문자열 값만 할당되도록 제한할 때 사용합니다. 이를 통해 코드 작성 시 발생할 수 있는 오타나 잘못된 값 전달을 컴파일 타임에 방지할 수 있습니다.

// status.ts
type TaskStatus = "todo" | "in_progress" | "done";

function setTaskStatus(status: TaskStatus): void {
  console.log(`현재 작업 상태: ${status}`);
}

setTaskStatus("in_progress"); // "현재 작업 상태: in_progress"
// setTaskStatus("cancel"); // 오류: "cancel"은 허용되지 않음

 

'TypeScript' 카테고리의 다른 글

[TypeScript] 인터페이스 설계  (0) 2025.02.24
[TypeScript] null의 개념과 활용  (0) 2025.02.24
[TypeScript] 정밀한 숫자 처리  (0) 2025.02.21
[TypeScript] 데이터 타입 분석  (0) 2025.02.21
[TypeScript] 변수와 스코프  (0) 2025.02.21