[TypeScript] 다형성과 제네릭
·
Front end/TypeScript
서론제네릭의 개념이 헷갈려서 며칠 공부를 해보고 포스팅을 한다. 제네릭이란 선언부에서 타입을 명시하지 않고 호출이 되었을 때 타입을 명시하는 어떠한 타입도 될 수 있는 기법이다.  나는 제네릭이 어떠한 타입도 될 수 있다면 unknown, any와 뭐가 다를까 하는 생각이 들었는데 오늘 드디어 뭔가 깨달은 것 같다 ㅋㅋ. 앞서 말한것 처럼 제네릭은 사용 시점의 인풋에 의해서 타입이 결정된다. 따라서 함수 혹은 인터페이스와 같은 곳에서 많이 사용된다.  반면에 unknown과 any는 사용 용도 자체가 다르다. 애초에 이 두가지를 비교할 수 없을 뿐더러 unknown은 어떠한 타입도 될 수 있지만 사용하기 위해서는 타입을 명시해야 한다는 부분도 다르다. any도 마찬가지로 비슷한 이유로 다르지만 이걸 쓰면..
[TypeScript] unknown, void, never 타입에 대해서 알아보자
·
Front end/TypeScript
TS에서는 JS에서만 있는 타입 뿐만 아니라 TS만의 타입도 가지고 있다. 이번에 포스팅 하는 3가지 타입이 그 예시이다. 시작하기에 앞서 간단히 이 타입에 대한 설명을 하자면 unknown은 모든 타입이 될 수 있는 타입이고, void는 아무것도 반환하지 않는 함수에 사용된다. 마지막으로 never는 절대 반환하지 않는 함수에서 사용된다는데 void랑 뭐가 다른지 잘 모르겠다. 강의의 예시로는 에러를 던지는 함수를 보여줬는데 조금 더 생각을 해봐야겠다..  + 지피티한테 물어봤는데 void는 아무것도 반환하지 않는 메서드 즉, 콘솔출력 또는 이벤트 핸들러에서 주로 사용된다고 하고 never는 정상적으로 종료되지 않는 함수 즉 무한루프, 에러 던지기에 주로 사용된다고 한다. unknown어떠한 타입도 될..
[TypeScript] Readonly , Tuple에 대해서 알아보자
·
Front end/TypeScript
ReadOnlyReadonly 는 말 그대로 읽기 전용 이라는 키워드 이다. 예를 들어서 어떤 배열을 생성할 때에만 값을 받고 해당 배열을 수정할 수 없게 만들고 싶을 때 사용한다.  또한 readonly 키워드는 배열 및 튜플에서만 사용 가능하다. 사용법은 아래와 같다.let arr : readonly number[] = [1, 2, 3]arr.push(4) //error 이렇게 만들어진 arr 배열은 추가, 삭제, 업데이트 모두 불가하다.  Tuple파이썬을 공부하며 리스트와 튜플의 차이는 가변성과 불변성으로 공부했었다. 타입스크립트에서도 비슷하지만 "타입"을 바꿀 수 없다는 점이 다르다. 먼저 튜플을 선언할 때에는 타입의 순서를 선언한다. let a : [number, string, number] ..
[TypeScript] 변수와 타입, 함수 생성
·
Front end/TypeScript
서론TypeScript는 JS에서 발생하는 에러를 대비하기 위해 만들어진 언어이다. 자바스크립트에서는 개발자를 위한 에러를 내지 않는다. 계산 식이 잘못 되었더라도 어떻게든 수행한다. 하지만 그로인한 결과값은 원하는 값이 아닌 경우가 많다. 예를 들어 JS에서는 [1, 2,3 ,4] + true 를 실행하면 오류없이 실행이 된다. console.log([1,2,3,4] + true)// result1,2,3,4true 하지만 위 결과는 원하는 결과 값이 아니다. 위와 같은 수식은 옳은 수식이 아니므로 실행 전 개발자에게 알려주어야 한다. 다음은 또 다른 예시이다. function div(val1, val2) { return (val1 / val2)}console.log(div('안녕?'))//res..