- 타입 주석과 타입 추론
- 인터페이스
- 튜플
- 제네릭 타입
- 대수 타입
// 1. 타입 주석 (n이 number라는 명시)
let n: number = 1
// 2. 타입 추론 (m의 타입을 생략)
let m = 2
2번처럼 타입 부분을 생략할 수도 있음. 자바스크립트 소스코드와의 호환성을 보장하는 데에 도움을 줌. .js 파일을 .ts로 변환하기만 하면 타입스크립트 환경에서도 동작한다.
interface Person {
name: string
age?: number
}
let person: Person = { name: "Jane" }
추상화 인터페이스 고유 기능 존재
tuple은 물리적으로 array와 같지만, elements의 데이터 타입이 모두 같으면 array, 다르면 tuple
// Array
let numberArray: number [] = [1, 2, 3]
// Tuple
let tuple: [boolean, number, string] = [true, 1, 'apple']
class Container<T> {
constructor(public value: T) {
}
}
let numberContainer: Container<number> = new Container<number>(1)
let stringContainer: Container<string> = new Container<string>("nah")
여러 가지 타입을 한 번에 취급할 수 있도록 함
ADT = Abstract / Algebraic Data Type(V)
다른 자료형의 값을 가지는 자료형.
type NumberOrString = number | string
type AnimalAndPerson = Animal & Person