매일 배운 것을 정리하며 기록합니다. TypeScript 함수와 메서드에 대해서 공부하고 있습니다.
function 함수명(매개변수1: 타입1, 매개변수2: 타입2[,...]) : 반환값 타입 {
...
}
function add(a: number, b: number): number {
return a + b
}
function printMyFavorite(name: string) : void {
console.log(`my favorite: ${name}`)
}
함수의 타입
(매개변수1 타입, 매개변수2 타입[,...]) => 반환값 타입
ex) 매개변수가 있는 경우
let printMyFavorite: (string) => void = function (name: string) : void {}
let noParams: () => void = function() : void {}
type stringNumberFunc = (string, number) => void
let f: stringNumberFunc = function(a: string, b: number): void {}
let g: stringNumberFunc = function(c: string, d: number): void {}
interface food {
name : string
}
function getFood(menu: food) {
return menu.name // undefined.name이 되어서 name속성을 찾을 수 없는 오류 발생
}
let f = getFood(undefined) // 에러 발생,
// undefined가 food를 상속하는 자식 타입으로 간주됨.
//
interface food {
name: string
}
function getFood(menu: food) {
return menu != undefined && menu.name? menu.name : 'undefined'
}
let f = getFood(undefined)
console.log(f) // undefined
console.log(getFood({name: 'pizza'})) // pizza
let f = function(a, b) { return a + b }
f = function(a, b) { return a - b }
const f = (callback: () => void): void => callback()
const init = (callback: () => void): void => {
console.log('default')
callback()
console.log('all finished')
}
init(() => console.log('custom'))