Data Type
- Javascript와 타입 종류는 비슷하지만 동적 타입이 아닌 정적이며, 타입이 결정된 후 다른 타입의 데이터가 해당 변수에 할당될 수 없다. (좀더 엄격한 기준을 갖고 있다.)
JavaScript Data Type
- Primitive: number, string, boolean, bigint, symbol, null, undefined
- Object: function, object, array ...
Number
const num1: number = 1;
const num2: number = 0.01;
const num2: number = -12;
const num: number = "string"; //Type 'string' is not assignable to type 'number'.
- 할당하는 데이터 타입이 숫자이다.
- 자연수, 정수, 음수 모두 가능하다. (이외 타입을 가진 데이터가 들어갈 경우, error가 발생한다.)
String
const str: string = "string입니다.";
- 할당되는 데이터 타입이 문자열이다.
Boolean
const boolean1: boolean = true;
const boolean2: boolean = false;
- 할당되는 데이터 타입이 boolean(true, false)타입이다.
Undefined (단독 사용x)
let name: undefined;
let age: number | undefined; // number 타입의 값이 존재하거나, 또는 undefined을 할당('|': or를 뜻한다.)
age = 1;
age = undefined;
- 할당되는 데이터 타입이 undefined이다.
- undefined만 선언될 경우, 어떠한 타입의 데이터도 해당 변수에 할당되지 못하기 때문에, undefined만 단독적으로 할당하지 않고 optional로 사용한다.
Null (단독 사용x)
let person: null;
let person2: string | null; // |: or를 뜻한다.
person2 = "yongmin";
person2 = null;
- 할당되는 데이터 타입이 null이다.
- undefined과 마찬가지로, null 또한 직접 할당하지 않고 optional로 사용한다.
Unknown
let notSure: unknown = 0;
notSure = undefined;
notSure = "anytype";
notSure = true;
- 할당되는 데이터 타입이 unknown, 뜻 그대로 할당되는 데이터 타입을 알 수 없다.
- 타입이 없는 자바스크립트와의 연동을 위해 사용하며 (자바스크립트의 return값 타입을 모를 경우), 그 이외의 경우에는 사용하지 않는 것을 권장한다.
Any
let anything: any = 0;
notSure = undefined;
notSure = false;
//
function Add(a, b) {
return a + b; // return값이 any로 확인됨
}
- 할당되는 데이터 타입이 any, 모든 데이터 타입의 값을 할당할 수 있다. (unknown은 모른다면, any는 뭐든지 가능한 느낌?)
- 위의
Add
함수처럼 Add의 parameter의 타입을 결정하지 않을 경우 자동으로 any으로 타입이 결정됨을 확인할 수 있다.
Void
function print() { // function print(): void
console.log("i'm void");
}
//
function print2(): void {
console.log("i'm, void"); // 타입을 명시하는 것을 권장한다.
}
- 함수에서
return
값이 없을 때 (비어 있을 때) 자동으로void
로 지정된다. - 자동 지정이 되어도, 타입을 명시하는 것이 관례적이므로, 왠만하면 작성하도록 하며 변수에는 지정하지 않도록 하자. (
return
값 자체가 비어있어undefined
만 할당할 수 있기 때문)
Never
function throwError(message: string): never {
// message => server(log) 서버쪽에 에러메세지를 남긴 후에
throw new Error(message); //에러를 던질 수 있다.
}
- 죽은 함수, 에러가 발생하거나 함수가 끝나지 않는 무한루프 상태일때 사용하는 타입이다.
(솔직히 이 부분에 대해서는 아직 잘은 모르겠다 ... 좀더 찾아봐야겠다 ..)
Reference
- 타입스크립트 공식문서
- 드림코딩 엘리님의 TS 및 OPP 강의
'TypeScript' 카테고리의 다른 글
TIL | Union, Intersection (0) | 2021.10.23 |
---|---|
TIL | Alias (0) | 2021.10.23 |
TIL | Array, readonly, Tuple (0) | 2021.10.23 |
TIL | 함수 타입 이용(type, spread, default, rest) (0) | 2021.10.23 |
TIL | TypeScript이란? (0) | 2021.10.23 |