TypeScript 유형
타입 : value가 가지고 있는 프로퍼티나 함수를 추론할 수 있는 방법
Primitive types
이름 | 의미 |
string | 문자열 |
number | 숫자 값 |
boolean | true와 false 값 |
null | 하나의 값 null |
undefined | 하나의 값 undefined, 초기화 되지 않은 변수의 기본 값 |
symbol | 고유한 상수 값 |
Methods
이름 | 의미 |
function | 함수 |
array | 배열 |
classes | 클래스 |
object | 객체, 배열, 함수 |
TypeScript 타입
이름 | 의미 |
Any | 모든 타입 허용 |
Union | 변수, 매개변수에 대해 둘 이상의 타입 허용 |
Tuple | 크기와 타입이 고정된 배열 |
Enum | 특정 값을 고정하는 독립된 자료형 |
Void | 함수에서 반환 값이 없을 때 반환 타입을 표현함 |
Never | 절대 발생할 수 없는 타입 |
string
작은 따옴표, 큰 따옴표, ES6 템플릿 문자열 값
number
숫자 값
16진수, 10진수, 2진수, 8진수 리터럴도 지원
boolean
true와 false 값
null
모든 타입의 하위 타입
--stricks / --strictNullChecks 를 사용하여 오직 any / 자신들 만 할당하게 설정 가능
-> 에러 방지에 도움
undefined
모든 타입의 하위 타입
초기화 되지 않은 변수의 기본 값
--stricks / --strictNullChecks 를 사용하여 오직 any / 자신들 만 할당하게 설정 가능
-> 에러 방지에 도움
symbol
고유한 상수 값
function
array
배열 타입
- 배열 요소를 나타내는 타입 뒤에 []사용
- Array<> 배열 타입 사용
classes
object
객체, 배열, 함수
typeof 연산자가 object로 반환하는 모든 타입
즉 number, string, boolean, bigint, symbol, null, undefined 가 아닌 나머지
여러 타입의 상위 타입으로 인식
-> 에러 위험이 있기에 객체 속성들 개별적으로 타입을 지정하는 식으로 사용
가독성을 높이기 위해 타입리터럴 사용
- alias 기능
- interface 문법
Any
모든 타입 허용
자바스크립트에서 사용하던 변수의 타입
모르는 타입을 표현해야 할때 사용
남용 시 컴파일의 보호장치을 잃어버릴 수 있음
"nolmplicitAny" : true - any 사용시 에러를 발생하게하는 옵션
Union
변수, 매개변수에 대해 둘 이상의 타입 허용(or)
백틱을 통해 타입을 구분하며 괄호는 배열일 경우 필수
Tuple
크기와 타입이 고정된 배열
항상 정해진 갯수의 요소를 가져와야 하는 배열 지정으로 응용 가능
정해진 타입의 고정된 길이 배열을 표현하지만 할당에 국한
.push() / .splice() 등으로 튜플에 정의된 타입을 넣을 수 있음
단 처음 할당된 값의 타입과 일치해야함
Enum
특정 값을 고정하는 독립된 자료형
상수들의 집합
인덱스 번호로 접근 가능 및 번호 변경 가능
Void
함수에서 반환 값이 없을 때 반환 타입을 표현함
어떤 타입도 존재할 수 없음을 나타냄
any의 반대 타입
함수가 아닌 변수 타입으로 정의시 undefined / null 만 할당 가능
void로 타입 션수를 선언하는 것은 유용하지 않음
Never
절대 발생할 수 없는 타입
타입스크립트에서 잘못된 것을 알려주기 위한 키워드
ex) 빈배열을 타입으로 잘못 선언한 경우
에러를 반환하는 함수 표현식에서 항상 오류를 발생시키거나 절대 반환하지 않는 반환 타입
모든 타입에 할당 가능한 하위 타입
그러나 자신을 제외하고 어떤 타입도 never에 할당 불가능
Unknown
알 수 없는 타입
any와 같이 모든 데이터 타입을 받지만 더 엄격함
- any는 어떤 것이든지 타입을 허용 => undefined 반환
- unknown은 알 수 없음. 모른다 느낌 => 에러 발생
에러가 발생한 경우 typeof 연산자를 통해 타입 검사로 해결 가능
any 대신 사용하여 안정적 개발 가능하게 함
Literal
문자열과 숫자에 한해서 직접 값 자체를 타입으로 선언 가능
숫자 리터럴 타입
숫자를 정확히 지정
문자열 리터럴 타입
문자열에 값을 정확하게 지정
객체 지향 함수의 오버로드 구분
Intersection
& 를 사용하여 2개 이상의 타입 조합(and)
새로운 타입을 생성하지 않고 기존의 타입들로 조합 가능하나 자주 쓰이지 않음
Type Alias
사용자가 정의한느 타입 변수
type 별칭으로 타입 형태를 묶어둔 뒤 별칭을 타입명으로 선언하여 사용 가능
변수명은 대문자로 기제
type 자료형 선언 후 타입값 기제
에디터 상의 프리뷰 상태로 타입의 별칭이 어떤 타입 묶음이었는지 알 수 있음
Interface
상호간의 정의한 약속, 규칙
타입을 정의한 것들을 모은 객체 타입 = 설계도
객체의 스펙(속성, 속성의 타입)
함수의 스팩 (파라미터, 반환 타입 등_
배열과 객체를 접근하는 방식
클래스
변수명은 대문자로 기제
Generic
타입을 변수화
함수 파라미터처럼 나중에 대입할 수 있도록 하여 재사용 성을 높임
<X>를 사용해서 선언하며 X는 변수명
참고 사이트