우리가 사용하는 브라우저들은 타입스크립트를 이해하지 못한다.자바스크립트로 변환해야 사용할 수 있다.정말 번거로운데 왜 이걸 사용해야 할까??라는 함수가 있다고 가정하자라고 작성하면 당연히 실행이 되지 않아야 하는데멍청한 자바스크립트는 어떠한 힌트도 주지 않고 오류도 나
배열이 첫번째 요소는 문자, 두번째 요소는 숫자를 가르킴가. void는 함수의 리턴값이 없는 경우나. never는 항상 에러를 반환하거나, 영원히 끝나지 않는 함수자바스크립트에는 없는 타입, 비슷한 값들끼리 묶은 타입OS에 각 window, Ios, Android를 넣
객체를 만들고 사용할 때 에러가 발생한다.이유는 user에 object 라고 타입을 명시해 주었지만 객체의 property의 타입까지는 알 수 없는 것이기 때문이다.interface로 타입을 만들어 주면 된다let user에 들어 있는 property를 알려주는 에러l
각 파라미터의 타입을 지정해준다.functio add()뒤에 :으로 리턴해주는 값의 타입을 지정할 수 있다.만약 아무것도 리턴해주지 않는다면?void로 지정해주면 된다.name이 없으면 world를 출력하라고 했지만 타입스크립트에서는 명확하게 지정을 해주어야 한다.매개
userName1 처럼 정해진 타입을 가진 것을 문자열 리터럴 타입이라고 한다.userName2에 숫자도 들어올 수 있게 하려면 명시적으로 입력을 해야 한다.이렇게 만들었을 경우 Mobile에는 start()가 없기 때문에 에러가 난다.이를 해결하기 위해서는 분기처리가
다양한 타입을 재사용할 수 있게 하는 것. 타입 파라미터만 적어주고 생성하는 시점에서 사용하는 타입을 결정함.타입이 늘어날 때마다 계속 써주거나 오버로드를 사용해줘야됨.타입파라미터 T를 <>로 입력후 arr:T\[]로 배열임을 알려준다.이후 사용하고자 하는 곳에서
keyof를 이용해서 interface 타입을 유니온으로 받아올 수 있다.property를 모두 option으로 바꿈타입 부분을 Partial<타입>으로 감싸줘서 사용한다.이 모습은다음과 같다.모두 필수 property로 바꿔준다.optional한 property
타입이 아직 하나로 확정되지 않았을 경우 사용하는 방법위의 경우 다음과 같은 에러가 발생한다.이 에러를 없애기 위해서 Narrowing을 써보면??typeof라는 연산자를 사용하여 타입을 지정해주면 된다.typeof x === string (X)typeof x ==