js에 타입을 추가하여 js를 확장시킨 언어이다. 코드를 실행하는데 있어서 에러를 잡거나 고치는데 들어가는 시간을 아껴준다. 또한 어떤 브라우저나 os, 어떠한 실행환경에서 완전히 작동한다. 단순 ts로 작성된 파일은 홀로 실행시킬 수 없다. 컴파일러를 통해 순수한 j
정적 타입 체크 ts는 정적 타입 시스템을 제공하여 컴파일 시에 타입 오류를 사전에 감지할 수 있다. 이는 개발자가 코드를 작성하는 과정에서 발생할 수 있는 오류를 줄여준다. 강력한 객체 지향 프로그래밍 인터페이스, 제네릭 등의 기능을 통해 객체 지향 프로그래밍을
js에도 기초적인 타입이 존재한다. ts는 static type, js는 dynamic type이라 한다. static type은 개발하는 중간에 타입을 체크한다. 하지만 dynamic type인 js는 개발할 때 타입을 알 수 없고, 실제 런타임에 적용시켜야만
number 타입은 16진수, 10진수, 2진수 등 다양하게 표현이 가능하다null과 유사하지만, undefined는 값이 아예 준비가 되지 않 은 형태를 의미하고, undefined는 값을 아직 할당하지 않은 변수가 가지는 형태이다primitive type은 lite
어떤 타입이어도 상관없는 타입이지만 최대한 쓰지 않는 게 핵심이다. 왜냐하면 컴파일 타임에 타입 체크가 정상적으로 이뤄지지 않기 때문이다. 컴파일 옵션 중에는 any를 써야 하는데 쓰지 않으면 오류를 리턴하는 옵션인 nolmplicitAny가 있다. any는 계속해서
ts의 기능을 이용하는 데 있어서, 타입의 작성자와 사용자를 구분하도록 해보겠다.만약 혼자 기획하고 개발하고 배포하는 1인 개발자인 경우, 타입의 작성자와 사용자가 동일하다. 하지만 대부분의 상황에서는 팀원과의 협업이 주로 이루어지거나, 내가 만들어 놓은 타입을 다른
Compliation Contenxt ts 파일들을 묶어서 하나의 그룹으로 묶고, 이 묶음에 필요한 설정을 추가하여 ts 파일을 js로 변환하는 작업을 컴파일이라 한다. 이 변환 작업에 필요한 세부 정보들은 'tsconfig.json'이라는 설정 파일에 저장된다. 이
noImplicitAny: "noImplicitAny" 옵션은 TypeScript 컴파일러에서 사용되는 옵션 중 하나로, 명시적인 타입 선언이 없는 경우 "any" 타입을 자동으로 할당하지 않도록 하는 역할을 합니다. 이를 활성화하면 함수의 반환값이나 변수의 타입이
ts는 js의 슈퍼셋으로, 정적 타입을 지원하는 프로그래밍 언어이다. 그리고 이 기능을 직관적으로 도와주는 문법이 바로 타이핑이다. 타이핑의 방법은 type Aliasing과 interface방법이 있다. type Aliasing과 함께 interface는 코드 작성
class ts에서 인터페이스를 이용하여 클래스를 구현하는 방법은 다음과 같다. 인터페이스는 클래스가 가져야 하는 속성과 메서드를 정의하고, 클래스가 이를 구현하여 해당 인터페이스의 형식을 따르도록 한다. js class와 ts의 calss의 차이점은, ts는 im
function을 만들 때Array를 만들 때intersection을 만들 때union type을 만들 때Declaration Merging Declaration Merging은 여러번의 선언으로 같은 이름의 인터페이스를 확장하거나 수정할 수 있는 기능이다. inter
ts의 class는 object를 만드는 일종의 blueprint(설계도)이며 사용자가 만드는 타입의 하나라고 볼 수 있다. class이전에 object를 만드는 방법은 function이었다. ts의 클래스는 일반적인 js 클래스와 매우 유사하지만 몇가지 기능이 부족하
ts 클래스에서는 프로퍼티에 접근하는 방식을 조절하기 위해 getter와 setter를 사용할 수 있다. 이를 통해 프로퍼티의 값을 가져오거나 설정하는 과정에서 추가적인 로직을 수행할 수 있다.getter property를 불러오기만 하는 함수setterproperty
싱글톤 패턴 (Singleton Pattern) 하나의 class(클래스)가 하나의 instance(인스턴스) 만 갖는 것을 보장하는 디자인. ts의 class도 싱글톤 패턴이 있다.
제네릭(Generic)은 ts에서 함수, 클래스 또는 인터페이스를 작성할 때 타입을 추상화하는 데 사용되는 기능이다. 이를 통해 여러 종류의 타입에 대해 재사용 가능한 코드를 작성할 수 있다. generic은 함수나 클래스를 선언할 때 특정 타입을 지정하지 않고, 나중
다양한 방법 generic으로 지정하고 싶은 타입이 하나가 아닌 2개 이상 일때도 있다. 이때는 다음과 같이 작성한다.
Generic Class ts에서는 제네릭 클래스(Generic Class)를 통해 클래스 내에서도 제네릭 타입을 사용할 수 있게 지원한다. 제네릭 클래스는 여러 종류의 데이터 유형에 대해 재사용 가능한 클래스를 만드는 데 사용된다. 제네릭 클래스를 사용하면 클래스
Partial TypeScript의 Partial 타입은 제네릭 타입으로, 주어진 객체 타입의 모든 속성을 선택적으로 만들어주는 유틸리티 타입이다. 이것은 주로 객체의 일부 속성을 업데이트하거나 변경할 때 유용하게 사용된다. 예를 들어, 다음은 Partial을 사용
Record 객체의 타입을 생성하는데 사용된다. 주어진 키 K와 값의 타입 T를 가지는 객체의 타입을 생성한다. Pick 타입 T에서 일부 속성만 선택하여 새로운 타입을 생성한다. Omit Omit는 타입 T에서 일부 속성을 제외하여 새로운 타입을 생성합니다.
Exclude Exclude 타입은 첫 번째 인자로 전달된 유니온 타입 Type에서 두 번째 인자로 전달된 유니온 타입 ExcludedUnion에 속하는 타입들을 제외한 타입을 생성한다. Extract Extract 타입은 첫 번째 인자로 전달된 유니온 타입 Type
typescript를 기반으로, 다른 라이브러리에서 정의된 타입을 바탕으로 개발을 하는 경우가 있다. 이때, 개발자가 임의로 정의된 타입 말고 새로운 속성을 추가하여 리턴해야하는 객체가 필요한 경우, 이때 Third Party 라이브러리에 정의된 타입과 일치하지 않으면
ReturnType`` ReturnType 타입은 함수의 리턴값의 타입을 지정해주는 유틸리티 타입이다. Generic 인자로 typeof 키워드와 함께 추론할 함수를 넣어주면, 해당 함수의 리턴 타입을 반환한다. Functuon 타입을 인자로 전달하면 다음의 에러가
satisfies 키워드 ts 4.9 버전 부터 도입된 satisfies 연산자는 타입 검증과 타입 추론을 보다 유연하게 수행할 수 있도록 도와준다. 타입이 기대한 타입을 만족하는지 확인하면서도, 추가적인 속성들을 허용하여 타입 오류를 방지할 수 있다. 예시를 살펴보자