본문 바로가기
IT/JavaScript & TypeScript

[TypeScript] 타입스크립트 기초

by 저당단 2024. 7. 3.

회사에서 타입스크립트를 사용한지는 좀 됐지만 정작 문서를 제대로 살펴본 적은 없다는 걸 깨달았습니다.
신입 분이 공부하는 걸 보고 제 자신을 되돌아보게 되었습니다. 나는 과연 얼마나 알고 있는 걸까,,
 
아래 문서를 정리한 포스트입니다.

Handbook - The TypeScript Handbook

Your first step to learn TypeScript

www.typescriptlang.org

 
 
1. 타입 추론(Types by Inference)
변수 정의 시 명시적으로 타입을 지정해주지 않아도 타입스크립트는 알아서 타입을 생성합니다.

// 명시적으로 타입 지정
let name: string = "doringri";

// 이래도 알아서 string 타입으로 사용함
let name = "doringri";

 
 
2. 타입 정의하기(Defining Types)
interface 선언을 통해 객체의 타입을 정의할 수 있습니다.

interface User {
    name: string;
    age: number;
}

const user: User = {
    name: "doringri",
    age: 11
};

- class를 정의하면 class를 통해서도 User 타입의 객체를 만들 수도 있습니다.
- extends를 통해 interface를 상속할 수 있습니다.
- interface와 유사한 type 이 있습니다. type도 상속이 가능하지만 방식이 약간 다릅니다.
 
 
3. 타입 구성(Composing Types)
유니언(Union) 타입, 제네릭(Generics) 타입을 지원합니다.

// 유니언 타입
const id: string | number = "1";

// 제네릭 타입
const names: Array<string> = ["alice", "bob"];

 
 
4. 구조적 타입 시스템(Structural Type System)
같은 형태를 가진 객체는 융통성 있게 같은 것으로 처리됩니다. 덕 타이핑(Duck Typing) 이라고 불립니다.

interface User {
    name: string;
    age: number;
}

const user = {
    name: "doringri";
    age: "10";
}

const printUser = (user: User) => {
    console.log(user.name);
}

// user 변수는 User 타입으로 지정되지 않았지만 형태가 같으므로 정상적으로 로그를 찍는다.
printUser(user);

 
 
 
 


최근에 만화 식객을 읽고 있는데 역시 사람은 공부를 해야 하는 것 같다는 생각이 드는군요,,, (자극받음)