개발 환경 준비 Node.js 권장하는 Node.js 버전은 안정적인 LTS 버전 LTS란 Long Term Support 의 약자로 오랜기간동안 안정적으로 지원되는 버전을 뜻한다. Node.js 설치하기 Node.js 다운로드 Node.js 설치 확인하기 npm 설치 확인하기 > npm이 뭔가요? npm(Node Package Manager...
타입스크립트란? 타입스크립트의 탄생 타입스크립트는 2012년에 마이크로소프트의 개발자이자 C#의 창시자로도 알려진 아주 유명한 덴마크 출신의 개발자 Anders Hejlsberg(앤더스 하일스버그)의 손에서 처음으로 탄생했다. C#의 창시자가 타입스크립트도 만들었기 때문에 둘이 비슷한점이 꽤 있다. 타입스크립트는 오픈소스이다. 타입스크립트는 오픈소...
JS의 단점과 TS의 장점 모든 프로그래밍 언어에는 타입 시스템이 있다. 자바스크립트를 포함해서 우리가 알고 있는 모든 프로그래밍언어에는 사실 타입 시스템이라는게 존재한다. 타입 시스템이란? 타입 시스템이란, 언어에서 사용할 수 있는 아주 여러가지 값들을 어떤 기준으로 묶어서 타입으로 정할지 결정하고 또 코드의 타입을 언제 검사할지 그리고 어떻게 검사...
타입스크립트의 동작 원리 대다수의 프로그래밍 언어는 어떻게 동작할까? 타입스크립트 동작 방식을 정확히 이해 하려면 대다수의 프로그래밍 언어들이 어떻게 동작 하는지 그 원리를 살펴볼 필요가 있다. 먼저 대부분의 프로그래밍 언어는 사실 컴퓨터보단 인간에게 더 친화적이다. 컴퓨터는 인간과는 달리 바이트코드나 기계어, 이진수 같은 아주 단순한 형태의 언어를 ...
Hello TS World 실습 코드를 보관할 폴더 만들기 Documents(문서) 폴더 아래애 “onebite-typescript” 라는 이름의 폴더를 만든다. Node.js 패키지 초기화 VSCode에서 방금 만든 onebite-typescript/section1 폴더를 연다. 그 다음 터미널을 열고 다음 명령어를 입력해 Node.js 패키지를 초...
타입스크립트 컴파일러 옵션 설정하기 컴파일러 옵션이란 타입스크립트의 컴파일은 우리가 작성한 코드에 타입 오류가 없는지 검사하고 오류가 없다면 자바스크립트 코드로 변환한다. 이러한 컴파일 과정에서 아주 세부적인 사항들 예를 들어 얼마나 엄격하게 타입 오류를 검사할 건지 또는 컴파일 결과 생성되는 자바스크립트 코드의 버전은 어떻게 할 것인지 등의 컴파일의 ...
기본타입 기본 타입(Basic Types) 이란? 기본 타입이란 타입스크립트가 자체적으로 제공하는 타입들을 말한다. 기본 타입을 다른 말로는 내장 타입이라고도 할 수 있다. 다음 그림은 타입스크립트가 제공하는 기본 타입들을 계층에 따라 분류한 ‘타입 계층도’ 그림이다. 그림을 자세히 보면 null이나 undefiend 그리고 number나 strin...
원시타입과 리터럴타입 onebite-typescript/chapter1.ts at main · winterlood/onebite-typescript 원시타입 원시 타입(Primitive Type)은 동시에 한개의 값만 저장할 수 있는 타입들을 말한다. 예를 들어 원시 타입이 아닌 배열이나 객체 같은 비 원시 타입들은 동시에 여러개의 값들을 저장할 수 ...
배열과 튜플 onebite-typescript/chapter2.ts at main · winterlood/onebite-typescript 배열은 자바스크립트의 배열과 크게 다르지 않으며 튜플은 타입스크립트에서만 특별히 제공되는 타입이다. 배열 배열 타입 정의 방법 타입스크립트에서는 다음과 같이 배열 타입을 정의한다. 배열을 저장하는 변수의 이름 뒤...
객체 https://github.com/winterlood/onebite-typescript/blob/main/section2/src/chapter3.ts 객체 타입을 정의하는 방법 Object로 정의하기 타입스크립트의 object타입은 단순 값이 객체임을 표현하는 것 외에는 아무런 정보도 제공하지 않는다. 따라서 이 타입은 객체의 프로퍼티에 대한 ...
타입 별칭과 인덱스 시그니쳐 타입 별칭(Type Alias) 타입 별칭을 이용하면 다음과 같이 변수를 선언하듯 타입을 별도로 정의할 수 있다. 참고로 동일한 스코프에 동일한 이름의 타입 별칭을 선언하는 것을 불가능 하다. 그러나 스코프가 다르다면 아래와 같이 중복된 이름으로 여러개의 별칭을 선언해도 상관없다. 인덱스 시그니처(Index Signatur...
열거형(Enum)타입 열거형 타입은 자바스크립트에는 존재하지 않고 오직 타입스크립트에서만 사용할 수 있는 특별한 타입으로, 여러개의 값을 나열하는 용도로 사용한다. 숫자 열거형 타입 멤버의 값이 모두 숫자인 enum을 숫자형 enum 혹은 숫자 열거형 타입이라고 부른다. 참고로, 다음과 같이 숫자값을 직접 할당하지 않아도 0부터 1씩 늘어나는 값으로 자동...
any와 unknown any 타입 any타입은 타입스크립트에서만 제공되는 특별한 타입으로 타입 검사를 받지 않는다. 위와같이 변수 anyVar를 number 타입의 값 10으로 초기화한 후 string 타입의 값 "hello"를 저장하면 위와같이 오류가 발생한다. 타입스크립트에서는 변수의 타입이 변수를 초기화할 때 초기화하는 값을 기준으로 추론하기 때...
void와 never void void타입은 아무런 값도 없음을 의미하는 타입으로, 보통은 다음과 같이 아무런 값도 반환하지 않는 함수의 반환값 타입을 정의할 때 사용한다. 변수에도 void타입을 지정할 수 있는데, void타입의 변수에는 undefined이외의 다른 타입의 값은 담을 수 없다. 하지만, 아래와 같이 tsconfig.json에 stric...
타입은 집합이다 타입스크립트의 '타입'은 사실 여러개의 값을 포함하는 '집합'이다. 집합은 동일한 속성을 갖는 여러개의 요소들을 하나의 그룹으로 묶은 단위를 말한다. 그렇다면, 오직 하나의 값만 포함하는 타입인 Number Literal타입은 어떤 집합일까? 이 타입은 아래의 그림과 같이 딱 하나의 값만 포함하는 아주 작은 집합이라고 볼 수 있다. 그...
타입 계층도 기본타입 unknown 타입 (전체 집합) unknown타입은 타입 계층도의 최상단에 위치한다. 따라서 unknown타입 변수에는 모든 타입의 값을 할당할 수 있다. 즉, 모든 타입은 unknown타입으로 업 캐스트 할 수 있는 것이다. 반면에 다른 타입이 unknown타입으로 다운 캐스트하는 것은 불가능하다.
객체 타입의 호환성 모든 객체 타입은 각각 다른 객체 타입들과 슈퍼-서브 타입의 관계를 갖는다. 따라서, 업 캐스팅은 허용하고 다운 캐스팅은 허용하지 않는다. 예제 예제 1. Animal타입이 Dog타입의 슈퍼타입이기 때문에 Animal타입의 변수 animal에 Dog타입의 변수 dog를 할당하는 것은 가능하지만 그 반대는 불가능하다. 예제 2. 초...
대수 타입(Algebraic type) 대수 타입이란 여러개의 타입을 합성해서 만드는 타입을 말한다. 합집합(Union) 타입 Union 타입으로 배열 타입 정의하기 Union 타입과 객체 타입 교집합(Intersection) 타입 number타입과 string타입은 서로 교집합을 공유
타입 추론이란 타입스크립트는 타입이 정의되어 있지 않는 변수의 타입을 자동으로 추론하는데, 이런 기능을 타입 추론이라고 한다. 이처럼 타입스크립트는 모든 변수에 일일이 타입을 정의하지 않아도 되는 편리함을 제공하지만, 모든 상황에서 타입을 잘 추론하는 것은 아니다. 예를들면, 다음과 같이 함수의 매개변수 타입은 자동으로 추론할 수 없다. 이렇게 타입 ...
타입 단언이란 값 as 타입으로 특정 값을 원하는 타입으로 단언할 수 있다. 위와같이 변수 person은 Person타입으로 정의 되었지만 초기화 할 때에는 빈 객체를 넣어두고 싶다고 가정할 경우, 타입스크립트는 이를 허용하지 않는다. 빈 객체는 Person타입이 아니므로 오류가 발생하는 것이다. 이럴 땐 다음과 같이 빈 객체를 Person타입이라고 단...
타입 좁히기 매개변수 value의 타입이 number | string이므로 함수 내부에서 위와같은 메서드를 사용하려고 하면 오류가 발생한다. 따라서 아래와 같이 조건문을 이용해 value의 타입을 보장해줘야 한다. 이렇게 조건문을 이용해 조건문 내부에서 변수가 특정 타입임을 보장하면 해당 조건문 내부에서는 변수의 타입이 보장된 타입으로 좁혀진다. 이...
서로소 유니온 타입 서로소 유니온 타입은 교집합이 없는 타입들 즉, 서로소 관계에 있는 타입들을 모아 만든 유니온 타입을 말한다. 사례 1. 회원의 역할 분류에 따라 3개의 타입을 정의하고, 이 3개의 타입의 합집합 타입인 User타입을 만들었다. login함수는 User타입의 매개변수 user를 받아 회원의 역할에 따라 각각 다른 기능을 수행하도록 ...
함수의 타입을 정의하는 방법 함수의 타입은 매개 변수와 반환값의 타입으로 결정된다. 함수의 반환값 타입은 자동으로 추론되기 때문에 다음과 같이 생략해도 된다. 화살표 함수 타입 정의하기 매개변수 기본값 설정하기 함수의 매개변수에 기본값이 설정되어있으면 타입이 자동으로 추론되며, 이 경우 타입 정의를 생략해도 된다. 이 때, 기본값과 다른 타입으로 매...
함수 타입 표현식 타입별칭을 이용해 함수의 타입을 별도로 정의하는 문법을 함수 타입 표현식이라고 한다. 이렇게 함수 타입 표현식을 이용하면 함수 선언 및 구현 코드와 타입 선언을 분리할 수 있어 유용하며, 아래와 같이 동일한 타입의 함수가 여러개 추가되어도 타입 정의만 해주면 되기때문에 매우 편리하다. 다만, 함수 타입 표현식이 반드시 타입 별칭과 함께...
함수 타입의 호환성이란? 함수 타입의 호환성이란 특정 함수 타입을 다른 함수 타입으로 취급해도 괜찮은지 판단하는 것을 의미한다. 함수 타입 호환성의 판단기준 기준 1 : 반환값 타입이 호환되는가? A의 반환값 타입은 Number, B의 반환값 타입은 Number Literal이므로 변수 a에 b를 할당하는 것은 가능하나 반대로는 불가능 하다. 기준 2...
함수 오버로딩 함수 오버로딩이란 하나의 함수를 매개변수의 개수나 타입에 따라 다르게 동작하도록 만드는 문법으로, TypeScript에서는 지원하지만 JavaScript에서는 지원하지 않는다. 타입스크립트에서 함수 오버로딩을 구현하려면 다음과 같이 버전별 오버로드 시그니쳐를 만들어 주어야 한다. 이렇게 구현부 없이 선언부만 만들어둔 함수를 오버로드 시그니...
사용자 정의 타입 가드 사용자 정의 타입 가드란 참 또는 거짓을 반환하는 함수를 이용해 우리 입맛대로 타입 가드를 만들 수 있도록 도와주는 타입스크립트의 문법이다. 2개의 타입 Dog와 Cat을 정의하고, 두 타입의 유니온 타입인 Animal타입을 정의했다. 다음으로 매개변수로 Animal 타입의 값을 받아 동물에 따라 각각 다른 경고를 콘솔에 출력하는...
인터페이스 인터페이스란 타입 별칭과 동일하게 타입에 이름을 지어주는 또 다른 문법으로 상속, 합침 등의 특수한 기능을 제공하기 때문에 객체의 구조를 정의하는데 특화되어 있다. 선택적 프로퍼티 읽기 전용 프로퍼티 메서드 타입 정의하기 ![](https://velog.velcdn.com/images/orodae/post/
인터페이스 확장 인터페이스 확장이란 하나의 인터페이스를 다른 인터페이스들이 상속받아 중복된 프로퍼티를 정의하지 않도록 도와주는 문법이다. interface 타입이름 evtends 확장할타입이름 형태로 사용하며, extends 뒤에 확장할 타입의 이름을 정의하면 해당 타입에 정의된 모든 프로퍼티를 다 가지고 오게 된다. 그리고, 이때 확장 대상 타입인 A...
선언 합침 타입 별칭은 동일한 스코프 내에 중복된 이름으로 선언할 수 없는 반면에 인터페이스는 가능하다. 중복된 이름의 인터페이스 선언은 결국 모두 하나로 합쳐지기 때문이다. 따라서 위 코드에 선언한 Person 인터페이스들은 합쳐져 아래와 같은 인터페이스가 된다. 이렇게 동일한 이름의 인터페이스들이 합쳐지는 것을 선언 합침이라고 하며, 다음과 같이 ...
타입스크립트에서는 클래스의 필드를 선언할 때 타입 주석으로 타입을 함께 정의해주어야 한다. 그렇지 않으면 함수 매개변수와 동일하게 암시적 any 타입으로 추론되는데, 엄격한 타입 검사 모드(strict 옵션이 true로 설정되어 있을 경우)일 때에는 오류가 발생하게 된다. 추가로 생성자에서 각 필드의 값을 초기화하지 않을 경우 초기값도 함께 명시해주어야...
접근 제어자 접근 제어자는 타입스크립트에서만 제공되는 기능으로, 클래스의 특정 필드나 메서드를 접근할 수 잇는 범위를 설정하는 기능이다. public 모든 범위에서 접근이 가능하며, 필드의 접근 제어자를 지정하지 않으면 기본적으로 public 접근 제어자를 갖게 된다. 다음과 같이 public 접근 제어자를 직접 명시하는 것도 가능하다. private...
인터페이스를 구현하는 클래스 타입스크립트의 인터페이스는 클래스의 설계도 역할을 할 수 있다. 다음과 같이 인터페이스를 이용해 클래스에 어떤 필드들이 존재하고, 어떤 메서드가 존재하는지 정의할 수 있다. 인터페이스 CharacterInterface는 name, moveSpeed 프로퍼티와 move 메서드를 갖는 객체 타입을 정의한다. 그런데 이 인터페이...
제네릭이란 제네릭이란 함수나 인터페이스, 타입 별칭, 클래스 등을 다양한 타입과 함께 동작하도록 만들어주는 타입스크립트의 기능 중 하나이다. 제넥릭이 필요한 상황 다음과 같이 호출 결과를 저장하는 num, str 등의 변수가 any 타입으로 추론되면 문제가 발생한다. num에는 분명 Number 타입의 값 10이 저장되어 있을 것이다. 그러나 any 타...
사례 1 만약 2개의 타입 변수가 필요한 상황이라면 다음과 같이 T, U 처럼 2개의 타입 변수를 사용해도 된다. 위 코드에서 T는 String 타입으로 U는 Number 타입으로 추론된다. 사례 2 다양한 배열 타입을 인수로 받는 제네릭 함수를 만들어야 한다면 다음과 같이 할 수 있다. 함수 매개변수 data의 타입을 T[]로 설정했기 때문에 배...
Map 메서드 타입 정의하기 자바스크립트의 배열 메서드 Map은 다음과 같이 원본 배열의 각 요소에 콜백함수를 수행하고 반환된 값들을 모아 새로운 배열로 만들어 반환한다. map 메서드를 직접 함수로 만들고 타입을 정의해보자 먼저 제네릭 함수가 아닌 일반적인 함수로 만든다. 메서드를 적용할 배열을 매개변수 arr로 받고, 콜백 함수를 매개변수 call...
제네릭 인터페이스 제네릭은 인터페이스에도 적용할 수 있다. 다음과 같이 인터페이스에 타입 변수를 선언해 사용하면 된다. 그리고, 다음과 같이 변수의 타입으로 정의하여 사용할 수 있다. 이때 주의해야 할 점은, 제네릭 인터페이스는 제네릭 함수와는 달리 변수의 타입으로 정의할 때 반드시 ``(꺽쇠)와 함께 타입 변수에 할당할 타입을 명시해주어야 한다는 것...
제네릭 클래스 list 필드를 private(접근 제어자)으로 설정해 클래스 내부에서만 접근할 수 있도록 만들고, 생성자에서 필드 선언과 함께 초기화 한다. 새로운 요소를 추가하는 push, 제거하는 pop, 출력하는 print 메서드도 만들어 추가한다. 그런데 만약 이때 StringList 클래스도 하나 필요하다면 어떻게 해야 할까? 제네릭 없이는...
Promise 사용하기 Promise는 resolve나 reject를 호출해서 전달하는 비동기작업의 결과값의 타입을 자동으로 추론하지 못하고 아래와 같이 기본적으로 unknown타입으로 추론한다. 따라서 다음과 같이 타입 변수에 할당할 타입을 직접 설정해주면 해당 타입이 바로 resolve 결과값의 타입이 된다. Promise의 catch메서드를 사용...
타입 조작이란 타입을 조작한다는 것은 기본 타입이나 별칭 또는 인터페이스로 만든 원래 존재하던 타입들을 상황에 따라 유동적으로 다른 타입으로 변환하는 것이다. 이전에 살펴보았던 제네릭도 함수나 인터페이스, 타입 별칭, 클래스 등에 적용해서 상황에 따라 달라지는 가변적인 타입을 정의할 수 있기 때문에 타입을 조작하는 기능에 포함된다. 타입스크립트에서는 제...
인덱스드 엑세스 타입 인덱스드 엑세스 타입은 인덱스를 이용해 다른 타입내의 특정 프로퍼티의 타입을 추출하는 타입이다. 인덱스드 엑세스 타입은 객체, 배열, 튜플에 사용할 수 있다. 객체 프로퍼티의 타입 추출하기 이 때, 위와같이 함수의 매개변수의 타입을 정의하면 나중에 Post타입의 author프로퍼티의 타입이 수정될 때 매개변수의 타입도 같이 수정해...
Keyof 연산자 keyof 연산자는 객체 타입으로부터 프로퍼티의 모든 key들을 String Literal Union 타입으로 추출하는 연산자이다. 다음은 keyof연산자를 사용하는 예시이다. 위 코드에서 key의 타입을 “name” | “age”로 정의했는데 이렇게 정의하면 Person 타입에 새로운 프로퍼티가 추가되거나 수정될 때 마다 이 타입도 ...
맵드 타입 맵드 타입은 기존의 객체 타입을 기반으로 새로운 객체 타입을 만드는 기능이다. 우리는 updateUser함수를 호출하여 유저 정보를 수정 하려고 하는데, updateUser함수의 매개변수 타입이 User타입으로 되어있어 수정하고 싶은 프로퍼티만 골라서 보낼 수 없는 상황이다. 이 상황을 해결하기 위해 새로운 타입을 만들어보자. 에러는 사라졌...
템플릿 리터럴 타입 템플릿 리터럴 타입은 타입 조작 기능들 중 가장 단순한 기능으로, 템플릿 리터럴을 이용해 특정 패턴을 갖는 String 타입을 만드는 기능이다.
조건부 타입 조건부 타입은 extends와 삼항 연산자를 이용해 조건에 따라 각각 다른 타입을 정의하도록 돕는 문법이다. 위 조건부 타입의 조건식 number extends string은 number 타입이 string 타입의 서브타입이 아니기 때문에 거짓이 되고 그 결과 타입 A는 number 타입이 된다. 객체 타입도 마찬가지로 ObjB는 ObjA의...
분산적인 조건부 타입 예제 1. 타입 변수에 다음과 같이 Union타입을 할당해 보자. 조건부 타입 문법에 따라 number | string은 number의 서브타입이 아니므로 조건식이 거짓이 되어 변수 c의 타입이 number가 될거라고 예상할 수도 있다. 그러나, 변수 c는 string | number 타입으로 정의된다. 그 이유는 조건부 타입의...
infer infer는 조건부 타입 내에서 특정 타입을 추론하는 문법이다. infer는 다음과 같이 특정 함수 타입에서 반환값의 타입만 추출하는 특수한 조건부 타입인 ReturnType을 만들 때 이용할 수 있다. 예제 1. 조건식 T extends () => infer R에서 infer R은 이 조건식을 참이 되도록 만들 수 있는 최적의 R 타입을 ...
유틸리티 타입이란 유틸리티 타입이란 타입스크립트가 자체적으로 제공하는 특수한 타입들로, 제네릭, 맵드 타입, 조건부 타입 등의 타입 조작 기능을 이용해 실무에서 자주 사용되는 유용한 타입들을 모아 놓은 것을 의미한다. 예를 들어 다음과 같이 Readonly와 같은 유틸리티 타입을 이용해 특정 객체 타입의 모든 프로퍼티를 읽기 전용 프로퍼티로 변환할 수 있...
Partial Partial은 특정 객체 타입의 모든 프로퍼티를 선택적 프로퍼티로 변환한다. 즉, 기존 객체 타입에 정의된 프로퍼티들 중 일부분만 사용할 수 있도록 도와주는 타입이다. 예제 간단한 블로그 플랫폼의 일부를 직접 구현한다고 가정해보자. 위와 같이 게시글의 일부 정보가 아직 설정되어 있지 않은 임시 저장 게시글의 경우에도 변수에 저장할 수 있...
Pick Pick는 특정 객체 타입으로부터 특정 프로퍼티 만을 골라내는 타입이다. 예를 들어 Pick 타입에 T가 name, age가 있는 객체 타입이고 K가 name 이라면 결과는 name만 존재하는 객체 타입이 된다. 예제 다음과 같이 옛날에 작성된 포스트가 하나 존재한다고 가정해보자. 이때 legacyPost에 저장되어 있는 게시글은 태그나 썸네...
Exclude Exclude는 다음과 같이 T로부터 U를 제거하는 타입이다. 직접 구현하면 다음과 같다. Extract Extract는 다음과 같이 T로 부터 U를 추출하는 타입이다. 직접 구현하면 다음과 같다. ReturnType `ReturnTyp
강의 진도 타입스크립트를 소개합니다. 자바스크립트의 한계점과 타입스크립트 타입스크립트의 동작 원리 Hello TS World 관련 게시글 타입스크립트란? 자바스크립트의 한계점과 타입스크립트 [타입스크립트의 동작 원리](https://velog.io/@orodae/%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%...
강의 진도 타입스크립트 컴파일러 옵션 설정하기 기본타입 원시타입과 리터럴타입 관련 게시글 타입스크립트 컴파일러 옵션 설정하기 기본타입 원시타입과 리터럴타입 진행 날짜 2023년 12월 6일
강의 진도 배열과 튜플 객체 타입 별칭과 인덱스 시그니처 Enum 타입 관련 게시글 배열과 튜플 객체 타입 별칭과 인덱스 시그니처 열거형 타입 진행 날짜 2023년 12월 7일 Mission Quiz 1. 다음
강의 진도 Any와 Unknown 타입 Void와 Never 타입 타입스크립트 이해하기 타입은 집합이다 타입 계층도와 함께 기본타입 살펴보기 관련 게시글 any와 unknown void와 never 타입은 집합이다 [타입 계층도와 함께 기본타입 살펴보기](https://velog.io/@orodae/%ED%83%80%EC%9E%85-%EA%B3%84%EC...
강의 진도 객체 타입의 호환성 대수 타입 타입 추론 관련 게시글 객체 타입의 호환성 대수 타입 타입 추론 진행 날짜 2023년 12월 9일 Mission Quiz 1. 아래 코드의 변수 a,b,c,d,e의 타입은 각각 어떻게 추론될까요? 정답 ![](https://velog.velcdn.com/images/orodae/post/dcbd0f9d-62...
강의 진도 타입 단언 타입 좁히기 서로소 유니온 타입 관련 게시글 타입 단언 타입 좁히기 서로소 유니온 타입 진행 날짜 2024년 1월 26일 Mission Quiz 1. 타입 단언을 이용해 person 변수에 빈 객체를 할당하세요 정답 Quiz 2. 타입 단언을 이용해 함수 호출에서의 오류를 해결하세요 정답 Qu
강의 진도 함수 타입 함수타입 표현식과 호출 시그니쳐 함수 타입의 호환성 관련 게시글 함수 타입 함수타입 표현식과 호출 시그니쳐 함수 타입의 호환성 진행 날짜 2024년 1월 27일 Mission Quiz 1. 다음 요구사항을 만족하도
강의 진도 함수 오버로딩 사용자 정의 타입 가드 인터페이스 인터페이스 확장하기 인터페이스 합치기 관련 게시글 함수 오버로딩 사용자 정의 타입 가드 인터페이스 [인터페이스 확장하기](https://velog.io/@orodae/%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-%ED%99%95%EC%9E%A5%ED%95%98...
강의 진도 자바스크립트의 클래스 소개 타입스크립트의 클래스 접근 제어자 인터페이스와 클래스 관련 게시글 타입스크립트의 클래스 접근 제어자 인터페이스와 클래스 진행 날짜 2024년 1월 29일 Mission Quiz 1. 다음 요구사항을 만족하는 Pokemon 클래스를 완성하세요
강의 진도 제네릭 소개 타입 변수 응용하기 map, forEach 메서드 타입 정의하기 관련 게시글 제네릭 소개 타입 변수 응용하기 map, forEach 메서드 타입 정의하기 진행 날짜 2024년 1월 30일 Mission Quiz 1. 다음 요구사항을 만족하는 func 함수의
강의 진도 제네릭 인터페이스, 제네릭 타입 별칭 제네릭 클래스 프로미스와 제네릭 관련 게시글 제네릭 인터페이스, 제네릭 타입 별칭 제네릭 클래스 프로미스와 제네릭 진행 날짜 2024년 2월 2일
강의 진도 타입 조작이란 인덱스드 엑세스 타입 keyof 연산자 맵드 타입 템플릿 리터럴 타입 관련 게시글 타입 조작이란 진행 날짜 2024년 2월 4일 Mission Quiz 1. 다음 요구사항을 만족하도록 getSellersFromProducts 함수의 매개변수와 반환값 타입을 정의하세요 getSellersFromProducts 함수는 매개변수로 ...
강의 진도 조건부 타입 소개 분산적인 조건부 타입 infer - 조건부 타입 내에서 타입 추론하기 관련 게시글 조건부 타입 분산적인 조건부 타입 infer 진행 날짜 2024년 2월 5일 Mission Quiz 1. 다음 요구사항을 만족하는 IsProductKey 타입을 완성하세요 IsProductKey 타입은 조건부 타입으로 다음 조건에 따라 각각 ...