타입 단언이란타입 단언은 이 값이 이 타입이다라고 컴파일러에게 알려주는 방법입니다. 이는 컴파일 타임에서만 동작하며, 런타임 코드에는 영향을 주지 않습니다.let rawData: any = "안녕, TypeScript!";let textLength: number = (rawData as string).length;console.log(`길이: ${textLength}`);// 출력: 길이: 15rawData는 any 타입이지만, as string으로 단언해 문자열로 취급함으로써 length 속성을 안전하게 접근할 수 있습니다.타입 단언의 주요 활용 사례함수 반환값 단언함수가 any를 반환할 때, 단언으로 구체적 타입을 지정할 수 있습니다.function fetchData(): any { return {..
기본 타입 별칭 생성하기가장 기본적인 형태로, 숫자, 문자열, 불린과 같은 타입을 유니온 타입으로 결합한 별칭을 만들 수 있습니다.type Value = string | number;let input: Value;input = "안녕하세요";console.log(`입력: ${input}`); // 출력: 입력: 안녕하세요input = 42;console.log(`입력: ${input}`); // 출력: 입력: 42객체 타입에 별칭 붙이기type Point = { x: number; y: number;};const origin: Point = { x: 0, y: 0 };console.log(`좌표: (${origin.x}, ${origin.y})`); // 출력: 좌표: (0, 0)함수 매개변수에 타입..
Union 타입 기본 개념Union 타입은 변수에 여러 타입 중 하나의 값이 할당될 수 있음을 의미합니다. 예를 들어, 문자열 또는 불리언값을 모두 허용하는 변수를 선언할 때 Union 타입을 사용할 수 있습니다.let result: string | boolean;result = "성공";console.log(`결과: ${result}`); // 출력: 결과: 성공result = true;console.log(`결과: ${result}`); // 출력: 결과: true함수에서 Union 타입 활용함수의 매개변수에도 Union 타입을 적용하면, 하나의 함수가 여러 타입의 인자를 처리할 수 있습니다.function formatValue(value: number | string): string { if (t..
never 타입이란never는 값이 존재할 수 없는 상태를 의미합니다. 이는 주로 두 가지 경우에 나타납니다.함수가 끝없이 실행되어 반환되지 않을 때(무한 루프)함수가 항상 예외를 던져 정상 종료되지 않을 때never의 기본 특성never 타입의 변수에는 어떤 값도 할당할 수 없습니다. 예를 들어, 아래와 같이 never 타입 변수에 문자열, 숫자, 불린 등의 값을 할당하면 모두 컴파일 에러가 발생합니다.let impossible: never;// 아래 할당들은 모두 오류 발생 (타입 'string', 'number', 'boolean'은 never에 할당할 수 없음)// impossible = "hello";// impossible = 100;// impossible = false;이처럼 never 타..
unknown 타입이란unknown 타입은 모든 값을 할당할 수 있는 최상위 타입입니다. any 타입과 유사하게 어떤 값도 담을 수 있지만, unknown 타입 변수에 대해 값을 사용하기 전에 반드시 해당 값의 타입을 좁혀(narrow) 주어야 합니다. 즉, unknown은 "무엇이든 될 수 있으나, 사용하기 전에는 그 실체를 반드시 확인하라"는 의미를 내포하고 있습니다.unknown을 사용하는 이유타입 안전성 강화: any 타입은 타입 검사를 완전히 우회하기 때문에 예상치 못한 런타임 오류를 발생시킬 수 있습니다. unknown 타입은 사용 전에 타입 검증을 요구하여, 보다 안전한 코드 작성을 돕습니다.외부 데이터 처리: API 응답이나 제3자 라이브러리의 결과처럼 정확한 타입을 알 수 없는 경우, u..
객체 리터럴: 빠르고 직관적인 생성객체 리터럴은 중괄호 `{}`를 사용해 간단히 객체를 정의하는 방법입니다. 소규모 데이터나 임시 객체를 만들 때 이상적입니다.let user = { id: 1001, username: "sunny", isActive: true,};console.log(`사용자: ${user.username}, 활성 상태: ${user.isActive}`);// 출력: 사용자: sunny, 활성 상태: true생성자 함수: 재사용 가능한 객체 설계생성자 함수는 `new` 키워드와 함께 호출되어 동일한 구조의 객체를 반복 생성할 수 있습니다. TypeScript에서는 타입 명시로 안정성을 더합니다.function Task(title: string, due: Date) { this.t..