타입스크립트와 자바스크립트의 관계 이해하기 💡 타입스크립트는 자바스크립트의 superset(상위집합)이다. 타입스크립트는 자바스크립트의 상위 집합입니다. 즉 모든 자바스크립트 프로그램은 타입스크립트이지만 그 반대는 성립하지 않습니다. 이는 타입스크립트가 타입을
타입스크립트를 설치하면 타임스크립트 컴파일러(tsc)와 타입스크립트 서버(tsserver)를 실행할 수 있다. 여기서 타입스크립트 서버는 언어 서비스를 제공한다. 보통 vscode와 같은 편집기를 통해서 언어서비스를 사용하게 된다. 심벌 위에 마우스를 올리면 타입스크립
아이템 10. 객체 래퍼 타입 피하기 자바스크립트는 객체 이외에도 string, number, boolean, null, undefined, symbol, bigint의 7가지 기본형 타입이 존재한다. 기본형들은 불변이며 메서드를 가지지 않는다는 점에서 객체와 구분된
분명 해당 글을 2보다 먼저 작성해서 올렸던 것 같은데 왜 사라져있는지 모르겠다...🥲타입스크립트를 설치하면 타임스크립트 컴파일러(tsc)와 타입스크립트 서버(tsserver)를 실행할 수 있다. 여기서 타입스크립트 서버는 언어 서비스를 제공한다. 보통 vscode와
아이템 14는 내용도 많고 개인적으로 배운 부분도 많아서 따로 작성했다. 반복된 코드를 반복하지 말자는 DRY 원칙은 타입에 대해서도 동일하게 적용된다. 타입 중복은 코드의 중복만큼 많은 문제를 발생시킨다. 타입간에 매핑을 사용하면 타입 정의에서도 불필요한 중복을 줄일
자바스크립트 객체는 문자열 키를 타입의 값에 관계없이 매핑한다. 타입스크립트에서는 타입에 인덱스 시그니처를 명시하여 유연하게 매핑을 표현할 수 있다. 위와 같이 타입 체크가 수행되면 네 가지 단점이 있다. 잘못된 키를 포함한 모든 키를 허용한다.특정 키가 필요하지 않다
자바스크립트 객체는 문자열 키를 타입의 값에 관계없이 매핑한다. 타입스크립트에서는 타입에 인덱스 시그니처를 명시하여 유연하게 매핑을 표현할 수 있다. 위와 같이 타입 체크가 수행되면 네 가지 단점이 있다. 잘못된 키를 포함한 모든 키를 허용한다.특정 키가 필요하지 않다
변수를 초기화할 때 타입을 명시하지 않으면 타입체커는 타입을 결정해야 한다. 이 때 타입스크립트는 지정된 단일 값을 가지고 할당 가능한 값들의 집합을 유추하는데 이 과정을 타입 넓히기라고 한다.다음 예제는 3D 벡터에 대한 타입과 그 요소들의 값을 얻는 함수이다. Ve
타입스크립트의 타입은 일반적으로 변경되지 않는다. 그러므로 객체를 생성할 때에 속성을 하나씩 추가하기보다는 여러 속성을 포함해서 한꺼번에 생성해야 타입 추론에 유리하다. 앞에서 봤듯이 타입스크립트에서는 객체의 타입을 체크할 때 해당 속성이 존재하는지 확인을 하기 때문에
자바스크립트에서는 비동기 동작을 구현하기 위해 콜백, 프로미스, async/await 세 가지 방법을 사용할 수 있다. 이 중 가장 역사가 오래된 방법은 콜백이지만 콜백이 중첩된 코드는 직관적으로 이해하기 어려우며 요청을 병렬로 실행하거나 오류 상황을 빠져나오기 어렵다
유효한 상태와 무효한 상태를 둘 다 표현하는 타입은 혼란을 초래하기 쉽고 오류를 유발하게 된다.유효한 상태만 표현하는 타입을 지향해야 한다. 코드가 길어지거나 표현하기 어렵지만 결국은 시간이 절약하고 고통을 줄일 수 있다.사용할 때는 너그럽게, 생성할 때는 엄격하게TC
외부에서 비롯된 데이터에 대한 타입을 작성할 때는 예시데이터가 아니라 명세를 참고해 타입을 작성하여야 한다. 명세를 참고해 타입을 생성하면 타입스크립트는 사용자가 실수를 줄일 수 있게 도와준다. 위 예시는 데이터가 아닌 API와 명세를 보고 타입을 만들어야 하는 이유를
타입스크립트의 타입 시스템은 선택적(optinal)이고 점진적(gradual)이기 때문에 정적이면서도 동적인 특정을 동시에 가진다. 따라서 타입스크립트는 프로그램의 일부분에만 타입 시스템을 적용할 수 있다. 이러한 특성으로 인해 점진적인 마이그레이션이 가능하다. any
타입스크립트는 일반적으로 변수를 선언할 때 타입 또한 결정된다. 그 후에 정제될 수 있지만 확장은 할 수 없다. 그러나 any 타입과 관련해서는 예외인 경우가 존재한다.(any는 진짜 예외가 너무 많다…) out의 타입이 처음에는 any의 배열이었는데 return 할
dependencies 현재 프로젝트를 실행하는 데 필수적인 라이브러리들이 포함된다. 프로젝트의 런타입에 사용되는 라이브러리들은 dependencies에 포함된다. 프로젝트를 npm에 공개하여 다른 사용자가 해당 프로젝트를 설치한다면 dependencies에 들어있는