
타입스크립트의 또 다른 장점으로는 프로그램을 디자인하면서 타입을 먼저 생각하고, 그리고 나서 코드를 구현하게 된다는 것이다.
type Add = (a: number, b: number) => number // 이러한 형태를 말함
const add: Add = (a,b) => a + b // 사용
// nextjs에서의 라우터 이동 방법 1
Router.push("/home")
// nextjs에서의 라우터 이동 방법 2
Router.push({
path: "/home",
state: 1
})
type Config = {
path: string,
state: object
}
type Push = {
(path: string):void // 라우터 이동 방법 1
(config: Config):void // 라우터 이동 방법 2
}
const push: Push = (config) => {
if(typeof config === 'string') {
console.log(config) // 라우터 이동 방법 1로 들어왔을 때,
} else {
console.log(config.path, config.state) // 라우터 이동 방법 2로 들어왔을 때,
}
// call signature들이 파라미터의 갯수가 다를 경우 (옵션 형태)
type Add = {
(a: number, b: number) : number
(a: number, b: number, c: number) : number
}
const add: Add = (a, b, c?: number) => {
if(c) return a + b+ c
return a + b
}