const 함수이름 = (매개변수1: 타입1): 반환 함수 타입 => (매개변수2: 타입2): 반환 타입 => 함수 몸통
// 반환 함수 타입 ex
(number) => number
// 반환 타입 ex
number
클로저
: 어떤 함수에서 선언한 변수를 참조하는 내부함수를 외부로 전달할 경우, 함수의 실행 컨텍스트가 종료된 후에도 해당 변수가 사라지지 않는 현상
색인 키 & 값
: 객체의 속성 이름을 변수로 만드려고할 때 사용
const 함수이름 = (key, value) => ({[key]: value})
// 색인 가능 타입
type KeyType = {
[key: string]: string
}
class A {
method1: () => void = function(): void {
함수 몸통
}
// function 키워드 생략 가능
method2(): void {
함수 몸통
}
- 정적 메서드
: static 수정자를 속성 앞에 붙여서 정적으로 만듦
: 클래스이름.정적메서드() 형태로 호출
class 클래스이름 {
static 함수이름(): 반환타입 {
함수 몸통
}
}
console.log(클래스이름.함수이름())
✅ 타입스크립트로 메서드 체인을 구현하려면 메서드가 항상 this를 반환하게 한다.
class Calculator {
constructor(public value: number = 0){}
add(value: number) {
this.value += value
return this
}
multiply(value: number) {
this.value *= value
return this
}
}
let calc = new Calculator
let result = calc.add(1).add(2).multiply(3).multiply(4).value
console.log(result) // (0 + 1 + 2) * 3 * 4 = 36