TypeScript

    [TS] Typescript #day3

    # Call Signatures-> 함수 위에 마우스를 올렸을 때 보게 되는 것 해당 코드의 변수나 함수의 타입을 알려줌함수를 구현하기 전에 타입을 만들 수 있고, 함수가 어떻게 작동하는지 서술해둘 수 있음type Add = (a: number, b:number) => number;const add:Add = (a,b) => a+b  # Overloading-> 함수 이름은 같지만 매개변수 또는 반환값의 타입이 다른 함수type Add2 = { (a: number, b: number): number (a: number, b: string): number}const add5: Add2 = (a, b) => { if(typeof b === 'string') return a return ..

    [TS] Typescript #day2

    # Types of TS part One선택적 타입 (Optional Type): 필수적으로 존재하지 않아도 되는 속성 사용법 : 이름 뒤에 물음표(?)를 추가한다.type Player = { name : number, age?: string}  타입 별칭 (Type Alias)특정 타입에 이름을 부여하여 코드의 가독성을 높이고 재사용성을 향상시킴type Age = number;type Name = string;type Player = { name : Name, age?: Age}const nico : Player = { name : "nico",}const lynn : Player = { name : "lynn",}type User = { id: number; name: string; ..

    [TS] Typescript #day1

    # Why not JavaScript"안정성, 더 정확히 말해서 타입 안정성"코드에 버그가 줄어듦런타임 에러가 줄어든다개발 생산성 향상 하지만 자바스크립트는?* 문제점 1 * 에러를 보여주지 않으려고 많은 노력을 함.[EX1][1,2,3,4] + false// '1,2,3,4false' 배열도 아닌, boolean도 아닌 string이 콘솔에 찍힌다. 이는 굉장히 이상하다고 볼 수 있는 자바스크립트는 이를 허용함 [EX2]function divide(a,b) { return a/b}divide("xxxxx")// NaN코드를 실행하고 NaN을 return함. 숫자형도 아니며, argument가 1개만 들어갔음에도 에러가 없고 예외 처리도 없음 * 문제점 2 * 최악의 에러는 런타임 에러런타임 에러 : 콘..

    [TypeScript] 타입스크립트란?

    자바스크립트 종류 1. 표준 자바스크립트인 ES5 2. ESNext, 3. ESNext에 타입 기능을 추가한 타입스크립트 타입스크립트로 개발했더라도 타입 기능을 사용하지 않는다면 ESNext 소스나 마찬가지임 javascript의 문제점 JavaScript의 동일 연산자는 (==) 인수를 강제로 변환하여(coerces), 예기치 않은 동작을 유발 if ("" == 0) { // 참입니다! 근데 왜?? } if (1 < x < 3) { // *어떤* x 값이던 참입니다! } JavaScript는 또한 존재하지 않는 프로퍼티의 접근을 허용 const obj = { width: 10, height: 15 }; const area = obj.width * obj.heigth; // area값은 NaN으로 뜸 -..

    [Error] addCase cannot be called with two reducers for the same action type

    [Error] addCase cannot be called with two reducers for the same action type 특정 페이지에 리덕스 툴킷을 만지다 이러한 에러가 떴다 [에러가 난 코드] const initialState: RandomState = { randomInput: { loading: false, data: { cuid: "", result: "", type: "", }, error: null, }, randomRecInput: { loading: false, data: { cuid: "", result: "", type: "", }, error: null, }, }; const randomSlice = createSlice({ name: RANDOM, initialSta..