1. 타입 주석(타입 명시)
변수 선언시 변수 값의 타입을 명시함으로써 변수 값의 데이터타입을 지정한다.
타입스크립트는 자바스크립트 변수 선언문을 확장하여 아래의 형태로 타입을 명시할 수 있다.
이것을 타입 주석(type annotation)이라고 한다.
let 변수 이름: 타입 [=초깃값]
const 변수 이름: 타입 = 초깃값
타입 주석으로 변수를 선언한 예를 알아 보자
let n: number = 1
let b: boolean = true //혹은 false
let s: string = 'hello'
let o: object = {}
타입스크립트는 자바스크립트와 다르게 let으로 선언한 변숫값은 타입 주석으로 명시한 타입에
해당하는 값으로만 바꿀 수 있다.
선언한 타입과 다른 타입의 값으로 변숫값을 바꾸려고 하면 오류가 발생한다.
2. 타입추론
타입스크립트는 자바스크립트와 호환성을 위해 타입 주석 부분을 생략할 수 있다.
타입 표기가 없는 경우 코드를 읽고 타입을 유추할 수 있다.
타입스크립트 컴파일러는 아래와 같은 코드를 만나면 대입 연산자 = 오른쪽 값에 따라 변수의 타입을 지정한다.
이것을 타입 추론(type inference)라고 한다.
let n = 1 //n타입을 number로 판단
let b = true //b타입을 boolean으로 판단
let s = 'ddory' //s타입을 string으로 판단
let o = {} //o타입을 object로 판단
변수 선언문에 타입 주석을 명시하지 않았지만, 컴파일러가 초깃값에 따라 타입을 추론하므로 각 변수는 초깃값에 해당하는 타입으로 지정된다.
이후에 각 변수에는 해당 타입의 값만 저장할 수 있다.
3. 타입 선언
- 변수 타입 선언
let 변수명:type
number, string, boolean, null, undefined
object,Array<type>,type[ ]
항목의 값을 지정할 수 없을 때 any를 쓴다.
- any
타입스크립트는 자바스크립트와 호환을 위해 any라는 이름의 타입을 제공한다.
아래 코드에서 변수 a는 타입이 any이므로 값의 타입과 무관하게 어떤 종류의 값도 저장 가능 하다.
let a: any = 0
a = 'hello'
a = true
a = { }
- 유니온 타입 UnionType( 다중 타입 )
let strnum: (string | number)
문자열과 숫자열을 동시에 가지는 변수, 중간에 버티컬바를 쓰면 된다.
UnionType은 주로 문자열 리터럴에서 사용된다.
type Color = "Red" | "Orange" | "Yellow";
let color: Color;
color = "Red";
let color:Color ="Green"; //Color 타입에 존재하지 않은 값을 할당하였기 때문에 오류 발생
열거형(enum)과 union type의 차이점
- UnionType은 컴파일 타임에만 존재, 열거형(enum)은 컴파일 타임, 런타임에 존재한다.
- UnionType은 모든 타입의 열거형, 열거형(enum)은 문자열 또는 숫자의 열거형이다.
'JavaScript > TypeScript' 카테고리의 다른 글
[TypeScript] 타입스크립트 자주 쓰는 문법 정리 (0) | 2023.03.30 |
---|---|
[TypeScript] 콜백 함수(callback function) (0) | 2023.02.23 |
[TypeScript] 타입스크립트로 카운터 만들기 예제 (0) | 2023.02.20 |
[TypeScript] 제네릭(Generic)이란? (0) | 2023.02.17 |
[TypeScript] call,apply,bind (0) | 2023.02.16 |
댓글