회사에서 타입스크립트를 사용한지는 좀 됐지만 정작 문서를 제대로 살펴본 적은 없다는 걸 깨달았습니다.
신입 분이 공부하는 걸 보고 제 자신을 되돌아보게 되었습니다. 나는 과연 얼마나 알고 있는 걸까,,
아래 문서를 정리한 포스트입니다.
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);
최근에 만화 식객을 읽고 있는데 역시 사람은 공부를 해야 하는 것 같다는 생각이 드는군요,,, (자극받음)
'IT > JavaScript & TypeScript' 카테고리의 다른 글
| [JavaScript] 코딩테스트에 유용한 자바스크립트 문법 (1) | 2024.09.25 |
|---|---|
| [JavaScript] 웹팩(Webpack) 구성하기 (2) | 2024.09.16 |
| [JavaScript/TypeScript] 반복문 안에 있는 비동기 처리 방법 (0) | 2024.05.10 |
| [JavaScript] 클로저를 통해 코드 최적화(Optimizing)하기 (0) | 2024.04.29 |
| [JavaScript] 클로저(Closure) (0) | 2024.04.24 |