TypeScript 기본 데이터 유형 및 변수 선언

기본 데이터 유형

// 불리언 (Boolean)
let isComplete: boolean = true;

// 숫자 (Number)
let decimalValue: number = 8;
let hexValue: number = 0xA1B2;
let binaryValue: number = 0b1101;
let octalValue: number = 0o755;

// 문자열 (String)
let colorName: string = "green";
colorName = 'yellow';

// 템플릿 리터럴 (Template Literals) 사용
let fullName: string = `Alice Wonderland`;
let age: number = 25;
let introduction: string = `안녕하세요, 저는 ${fullName}입니다. 
내년에는 ${age + 1}살이 됩니다.`;

// 배열 (Array)
let numbers: number[] = [1, 2, 3];
let strings: Array<string> = ["apple", "banana"];

// 튜플 (Tuple)
let coordinates: [number, number, string] = [40.7484, -73.9857, "New York"];
console.log(coordinates[0]); // 첫 번째 요소 출력
coordinates[2] = "Los Angeles"; // 세 번째 요소 변경 가능

// 열거형 (Enum)
enum Direction { North, East, South, West };
let chosenDirection: Direction = Direction.East;

// 수동 값 할당
enum Status { Pending = 1, Completed = 2, Failed = 3 };
let currentStatus: Status = Status.Completed;

// never 타입 (가능하지 않은 상태를 나타냄)
function throwError(message: string): never {
    throw new Error(message);
}

function endlessLoop(): never {
    while (true) {}
}

// any 타입 (모든 형식을 허용)
let unknownValue: any = 42;
unknownValue = "Hello";
unknownValue = false;

변수 선언

var 키워드

// 함수 내부에서의 var 선언
function exampleVar() {
    var message = "Hello!";
    console.log(message); // Hello!
}

// 재선언 가능
var x = 10;
var x = 20; // 중복 선언 가능
console.log(x); // 20

// 함수 클로저와 var
function outerFunction() {
    var outerVariable = 10;
    return function innerFunction() {
        console.log(outerVariable); // 클로저로 접근 가능
    }
}
outerFunction()(); // 10

let 키워드

// 블록 스코프
function useLet(input: boolean) {
    let a = 10;
    if (input) {
        let b = a + 1;
        console.log(b); // 입력값에 따라 출력
    }
    // b는 이곳에서는 접근 불가
}

// 반복문에서의 let 사용
for (let i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 100); // 각각의 i 값 유지
}

// 재선언 불가
let y = 10;
// let y = 20; // 에러: 동일한 범위 내에서 재선언 불가

const 키워드

// 불변 참조
const pi = 3.14;
// pi = 3.1415; // 에러: 재할당 불가

// 객체 상수 선언
const settings = {
    theme: "dark",
    fontSize: 14,
};

settings.theme = "light"; // 속성 변경 가능
// settings = {}; // 에러: 객체 자체 재할당 불가

구조 분해 선언 (Destructuring Declaration)

배열 구조 분해

let fruits = ["apple", "banana"];
let [firstFruit, secondFruit] = fruits;
console.log(firstFruit); // apple
console.log(secondFruit); // banana

// 나머지 구문 사용
let [head, ...tail] = [1, 2, 3, 4];
console.log(head); // 1
console.log(tail); // [2, 3, 4]

객체 구조 분해

let user = {
    name: "John",
    age: 30,
    location: "New York"
};

let { name, age } = user;
console.log(name); // John
console.log(age); // 30

// 이름 변경
let { name: userName, age: userAge } = user;
console.log(userName); // John
console.log(userAge); // 30

// 기본값 설정
let { location: userLocation = "Unknown" } = user;
console.log(userLocation); // New York

함수 매개변수에서의 구조 분해

function printUser({ name, age }: { name: string, age: number }) {
    console.log(`${name} is ${age} years old.`);
}

printUser({ name: "Jane", age: 28 });

스프레드 연산자 (Spread Operator)

// 배열 합치기
let array1 = [1, 2];
let array2 = [3, 4];
let combined = [...array1, ...array2]; // [1, 2, 3, 4]

// 객체 병합
let defaultSettings = { theme: "light", fontSize: 12 };
let customSettings = { ...defaultSettings, theme: "dark" }; // { theme: "dark", fontSize: 12 }

태그: TypeScript basic-types variable-declaration

7월 2일 03:11에 게시됨