반응형

 

📝function

function liveDangerously(x?: number | null) {
  // No error
  console.log(x!.toFixed());
}

/** ---- function ---- **/
function hello(name?: string, age?: number, hobby?: string | undefined){
    return `Hello, ${name}. You are ${age}. and My Hobby is ${hobby}`;
}

console.log(hello("Lee", 30)); // Hello, Lee. You are 30. and My Hobby is undefined

// 예시2
// void 리턴인 경우 리턴 값이 있을 수도 없을 수도 있다
type voidFunc = () => void;

const f1: voidFunc = () => {
  return true;
};


/** ---- Function ---- **/
// Function은 함수계의 any이다
function doSomething(f: Function) {
  return f(1, 2, 3);
}

 

📝나머지 인자값

/** ---- rest parameters ---- **/
function add(...nums: Array<number>) {
    return nums;
}

console.log(add(1,2,3,4,5,6)); // [ 1, 2, 3, 4, 5, 6 ]

 

 

📝this

/** ---- this ---- **/
interface User {
    name: string
}

const Sam: User = {name:'Sam'}

function showName (this:User, age: number, gender: 'm'|'f') {
    console.log(this.name, age, gender)
}

const userInfo = showName.bind(Sam); // bind()는 this 값을 셋팅해주는 작업이다.
userInfo(10,'m'); // Sam 10 m

 

반응형