개발/TypeScript

    7. 타입스크립트(TypeScript) - Overloading & Polymorphism (다형성)

    1. Overloading → 실제로 많은 오버로딩된 함수를 직접 작성하지는 않을 것이다 → 하지만, 다른 사람들이 만든 외부 라이브러리를 사용할텐데 이런 패키지나 라이브러리들은 오버로딩을 많이 사용한다 → 함수가 서로 다른 여러개의 Call Signature를 가지고 있을때 발생시킴 type Add = { (a:number, b:number) : number, (a:number, b:string) : number } const add:Add = (a, b) => { if(typeof b ==="string") return a return a + b } // 이렇게 작성할 수 있지만 별로 좋지 못한 코드 type Config = { path: string, state: object } type Push ..

    6. 타입스크립트(TypeScript) - 타입 & Call Signature

    1. JS에도 있는 타입 let a : undefined = undefined; let b : null = null; // 두 타입은 JS에도 있다 가끔 우리는 선택적 타입을 사용하는데 선택적 타입은 undefined가 될 수 있다 위에서 사용했던 ? → 특정 타입이거나 undefined거나 1.1. any → TS로부터 빠져나오고 싶을 때 쓰는 타입 → TS에게 바보같은 코딩을 하고 싶다고 허락을 받는다고 생각하면 됨 → any를 사용하면 TS로부터 빠져나와 안전장치가 없는 JS로 들어간다 const a : any[] = [1, 2, 3, 4] const b : any = true a + b // any를 사용했으므로 잘못된 코드이지만 실행된다 2. TS에만 있는 타입 → TS에서 중요한 것은 Type..

    5. 타입스크립트(TypeScript) - Readonly & Tuple

    1. Readonly → 요소들을 읽기 전용으로 만들 수 있다 읽기 전용이 설정된 부분을 수정하려고 시도하면 TS에서 제한 한다 (보호 한다) type Age = number; type Player = { readonly name: string, age?: Age } function playerMaker(name: string) : Player { return { name: name } }; const a = playerMaker("hello"); a.age = 12; a.name = "bye"; // readonly 설정된 name 부분을 수정하려고 하기 때문에 TS에서 오류 발생 const numbers : readonly number[] = [1, 2, 3, 4] numbers.push(1) // ..

    4. 타입스크립트(TypeScript) - Alias(별칭) & return 타입 지정

    const player : { name: string, age?: number } = { name: "hello" } const player2 : { name: string, age?: number } = { name: "Bye", age: 12 } Player과 Player2는 타입이 같고 내용이 다르다 같은 코드가 반복되며 번거로워진다. 이러한 번거로움을 줄이기 위해 사용하는 것이 Alias(별칭)이다 1. Alias 작성 규칙 type Player = { name: string, age?: number } 첫 글자는 대문자로 작성한다 Alias는 오브젝트에만 적용할 수 있는것이 아니다. 사용하고자 하면 어떠한 형식에서도 사용할 수 있다 단, 과하게 사용하면 좋지 않고 코드가 깔끔하고 명확해질 때 까..