
타입을 변수처럼 사용하는 문법아래처럼 같은 속성을 가진 객체가 여럿일 경우 매번 같은 타입을 작성해줘야한다.이로 인해 코드의 중복이 발생함으로써 가독성이 떨어지고 유지보수가 어려워진다.이를 해결하기 위해서 타입 별칭을 사용한다.타입을 선언하고 변수에 지정해준다.type

key와 value의 규칙을 기준으로 객체의 type을 정의할 수 있는 문법Key는 각 국가의 이름이고 value는 그 국가의 두 자리 영문 코드인 객체가 있다고 가정만약 글로벌 시스템인 경우, 국가 정의는 수백 개로 늘어날 수도 있다.규칙을 찾을 수 있는데 키는 st

여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입자바스크립트에서는 지원하지 않지만 컴파일 시 사라지지 않고 객체로 변환된다.아래와 같이 유저마다 역할이 있고, 이를 Number형으로 지정한다고 가정하자이 방식은 직관적이지 못하며, 기억의 상실로 인해 오류를

특정 변수의 타입을 확실히 모를 때 사용하는 문법어떤 타입이던지 허용한다.모든 타입의 값을 허용하며, 모든 타입의 변수에 any 타입의 변수를 할당할 수 있다.단 이 코드를 컴파일하고 실행하면 에러가 발생한다.즉, 타입스크립트의 이점을 모두 포기하는 것과 같다.따라서

아무 것도 없음을 의마하는 타입void 타입에는 오직 undefined만 할당할 수 있다.fun2() 함수에 작성한 주석처럼,함수에 return 를 정의하지 않으면 undefined가 반환된다.그러나 다음과 같이 함수 반환 타입에 undefined를 지정하면 에러를 반

타입스크립트의 "타입"은 여러 개의 값을 포함하는 "집합" 이다.위 그림처럼 여러개의 숫자 값을 묶어놓은 집합을 number 타입이라고 한다.오직 하나의 값만 포함하는 타입을 말한다.예를 들어 Number Literal 타입은 값 20 만을 집합으로 함을 의미한다.즉,

이전 글 - \[Typescript] 타입은 집합이다 - 타입 호환성 에 대한 간단 복습타입은 집합과 유사서브 타입은 슈퍼타입에 할당할 수 있다. - 업 캐스팅슈퍼 타입은 서브타입에 할당할 수 없다. - 다운 캐스팅any는 업 캐스팅과 다운 캐스딩을 모두 허용한다.기본

여러 개의 타입을 합성해서 만드는 타입| 를 이용해서 만들 수 있다.변수 a 에는 string 타입 또는 number 타입이 할당될 수 있다.이렇게 사용하면 다양한 타입의 요소를 보관하는 배열 타입을 만들 수 있다.Dog 타입 혹은 Person 타입 중 하나와 동일하거

타입스크립트는 타입이 정의되어 있지 않은 변수의 타입을 자동으로 추론한다.함수의 매개변수 타입은 자동으로 추론할 수 없다.타입 추론이 불가능한 변수(ex 매개변수)에는 암시적으로 any 타입이 추론된다.엄격한 타입 검사 모드 (tsconfig.json의 strict 옵

개발자가 해당 타입에 대해 확신이 있을 때 사용하는 타입 지정 방식컴파일 시 해당 값을 지정한 타입으로 간주,실제 구조가 맞는지까지는 검사하지 않음컴파일 에러는 발생하지 않지만, 런타임에서 예상치 못한 오류가 발생할 수 있음위 코드는 에러를 발생시킨다.Person 타입

객체 선언const obj = { a: 1, b: 2 }변수 obj를 재할당할 수 없음객체 속성은 변경 가능타입 단언(as const)const obj = { a: 1, b: 2 } as const객체 전체를 읽기 전용(readonly) + 리터럴 타입으로 고정객체 속

Nextjs + Typescript 기반의 프로젝트에서 debounce가 필요했다.내가 만들고자 했던 것은 모든 타입의 인자를 허용하며 void 타입을 반환하는 함수와,debounce 의 delay time(기본 값: 200)을 인자로 받아,debounce가 적용된 함

다음과 같이 value가 number 타입이거나 string 타입일 것으로 기대하고메서드를 사용하려고 하면 오류가 발생Number 메서드인 toFixed 메서드나 String 메서드인 toUpperCase를 사용하고 싶다면조건문을 이용해 value의 타입이 number

문제점if-else_if 만 봤을대 user가 어떤 타입인지 한번에 알기 어려워서 타입 별칭 재확인 필요User는 유니온 타입으로 선언되었기 때문에 name 프로퍼티가 합성된다.name: string | string | string해결방법: 리터럴 타입의 프로퍼티를 추

특정 함수 타입을 다른 함수 타입으로 괜찮은지 판단하는 것을 의미A의 반환 값 타입은 Number,B의 반환 값 타입은 Number LiteralNumber(A) > Number Literal(B) -> a = b 가능 b는 10만 반환 가능하기 때문에 b = a 불가