타입스크립트란?
왜 사용하는 걸까
- 컴파일 시에 타입 오류를 발견할 수 있음 + 에러 메시지가 명확함
- 프로젝트 사이즈가 커지면 자유도 & 유연성은 독이 됨 → TypeScript는 타입을 엄격히 검사
- JavaScript의 SuperSet이므로 JavaScript와 완벽하게 호환
설치 및 사용
npm install -D typescript
npx tsc
tsc hello-world.ts
tsc --init
주요 타입
const n: number = 5;
const s: string = "Alice";
const b: boolean = true;
const a: any = "Hello";
const u: undefined = undefined;
const l: null = null;
function someFunction(value: number, gap?: number = 1): number {
return value + gap
}
const someFunction: (someParam: string) => number = (someParam) => 5
const o: { a: string, b: number } = { a: "hello", b: 100 }
interface vs type
interface
type
- interface보다 더 유연한 타입 정의가 가능
- 객체뿐 아니라 다양한 타입을 정의
- 유니언 또는 인터섹션 타입과 같은 고급 타입을 표현하는 데 더 적합
as
- 컴퓨터는 모르지만 우리는 확실히 알고 있는 정확한 타입을 컴퓨터에게 알려줄 때 사용 =
type assertion (타입 단언)
function someFunction(): string | number {
return 5;
}
const a = someFunction() as number;
Generic Type
- 한 번 정의한 함수가 매개변수를 이용하여 재사용 될 수 있는 것처럼 제너릭을 이용하면 타입을 재사용 할 수 있다.