Skip to Content
Sunbeen's Blog
Documents구 TypescriptBasic_Grammer타입스크립트 기본 정리

01. 🟦 타입스크립트 기본 정리

📌 1. 타입 주석 (Type Annotation)

  • 변수에 : 기호를 사용해 타입을 붙이는 것을 **타입 주석(Type Annotation)**이라고 합니다.
  • any는 모든 타입을 허용하지만, 타입 안정성을 해치기 때문에 사용 지양합니다.
const a: number = 6; const b: string = "5"; const c: boolean = false; const d: undefined = undefined; const e: null = null; const f: any = true; // ❌ 명시적 any는 지양 // 고정된 상수 타입 // 값 자체를 타입으로 지정하면 오직 해당 값만 할당 가능하게 됩니다 // **리터럴 타입(Literal Type)**이라고 하며, 주로 상수나 고정된 값을 의도할 때 사용합니다. const g: true = true; const h: 5 = 5;

📌 2. 함수의 타입 지정

  • 방식 1. 타입 별칭(Type Alias)
    • Add라는 함수 타입을 만들어 재사용할 수 있습니다.
    • 코드 재사용성과 가독성 모두 향상됩니다.
type Add = (x: number, y: number) => number; const add: Add = (x, y) => x + y;
  • 방식 2. 직접 함수 타입 명시
    • 변수에 직접 함수 타입을 작성하는 방식입니다.
    • 코드가 짧거나 1회성 함수에 자주 사용됩니다.
const add2: (x: number, y: number) => number = (x, y) => x + y;
  • 방식 3: 인터페이스 (Interface) 활용 -> 사용도 적음
    • 함수 타입도 interface로 표현할 수 있으며, 구조적인 설계나 객체지향 설계에 유리합니다.
    • 객체 안에 함수 타입을 여러 개 포함시킬 수도 있습니다.
interface Add3 { (x: number, y: number): number; } const add3: Add3 = (x, y) => x + y;

📌 3. 배열과 튜플

// 문자열 배열 const arr: string[] = ["123", "456"]; // 제네릭 형식 const arr2: Array<number> = [123, 456]; // 튜플 : 순서와 타입이 중요할 때 사용합니다. const arr3: [number, number, string] = [123, 456, "hello"]; // ❌ 튜플 에러 발생 const arr4: [number, number, string] = [123, 456, "hello", "wow"];

📌4. 객체 타입 지정

  • 객체의 속성마다 타입을 지정할 수 있습니다.
  • lat과 lon은 반드시 number여야 하며, 누락되거나 다른 타입이면 오류가 납니다.
const obj: { lat: number; lon: number } = { lat: 123, lon: 5.3 };

📌5. 타입 추론 (Type Inference)

  • 타입스크립트는 대부분의 경우 타입을 자동으로 추론합니다.
  • tempAdd 함수의 리턴값은 number로 추론되고, result도 자동으로 number 타입이 됩니다.
function tempAdd(x: number, y: number) { return x + y; } const result = tempAdd(1, 2);
  • 함수 오버로딩(Overloading) 예시
    • 선언부와 구현부를 분리해 여러 인자 타입을 지정할 수 있습니다.
    • 가능한 경우 타입 추론에 맡기고, 매개변수에는 명시적 타입을 부여하는 것이 안전합니다.
function tempAddJS(x: number, y: number): number; function tempAddJS(x, y) { return x + y; }

📌 6. 타입 단언 (Type Assertion)

  • 타입스크립트에게 “이 값은 number처럼 취급해줘”라고 강제로 알려주는 방식입니다.
  • as unknown을 먼저 거치면 어떤 값도 어떤 타입으로도 변환 가능합니다.
  • ⚠️ 오용 시 타입 안정성이 깨지므로 주의 필요
let bb = "hello" as unknown as number;

📌 7. 타입 안정성 (Type Safety)

  • 타입스크립트는 변수에 처음 설정된 타입을 기준으로 다른 타입을 막아줍니다.
  • 이는 코드 안정성을 높여주며, 런타임 에러를 컴파일 타임에 방지할 수 있습니다.
let cc = 123; cc = "123"; // ❌ 오류: number 타입에 string 대입 불가
항목설명
변수 타입 지정:타입 형태로 변수에 타입 지정 가능
함수 타입 선언(x: 타입, y: 타입) => 리턴타입 형태로 명시
배열과 튜플배열은 타입[], 튜플은 [타입1, 타입2, ...]
객체 타입속성마다 타입을 정밀하게 지정 가능
타입 추론타입스크립트가 자동으로 타입을 유추
타입 단언as 타입 문법으로 강제 지정 가능
타입 안정성타입스크립트는 타입 불일치 대입을 막음
Last updated on