조금 베이직한 기본타입에 대한 정리를 먼저 해보고 진행해보려고 한다.
바로 원시타입과 오브젝트 타입에 관한 것이다.
Typescript에 대한 이미지를 찾아보셨던 분들이라면 이런 것을 많이 보셨을 것이다.
즉, typescript는 자바스크립트를 내포하고 있는 것이다.
그러니 자바스크립트에 대한 언급이 계속 될 것이며, 자바스크립트와 비교도 될것이고, 비슷한 점도 볼 수 있을것이다.
이렇게 내포하는만큼 타입스크립트를 공부하기 전에 알아야하는것이 자바스크립트이다.
자바스크립트에는 원시타입과 오브젝트 타입이 있다.
우리가 흔히 말하는 원시타입 즉, Primitive type의 종류로는 총 6가지를 가진다.
그 종류로는 아래와 같은 것이 있다.
number, string, boolean, symbol, null, undefined
number
const num:number = -5;
string
const str:string = "Hello world";
boolean
const bool:boolean = true;
undefiend
let age: number | undefined;
age = undefined;
age = 1;
function find(): number | undefined {
return 1
// or
return undefined
}
null
let person2: string | null;
unknown
어떤 종류의 데이터가 담길지 알 수 없다!
그래서 number, string, boolean 다 담길 수 있다
그러나 가능하면 사용하지 말고 구체적인 데이터를 명시하는 것이 좋다!
let notSure: unknown = 0;
notSure = 'Hi';
notSure = true;
any
number, string 등 무엇이든 할당 할 수 있다.
unkown처럼 가능하면 사용하지 말고 구체적인 데이터를 명시하는 것이 좋다
let anything:any = 0
anything = 'HELLO'
void
함수에서 아무것도 return 하지 않는 것(텅텅 빈?)을 말한다.
변수에 선언되는 것은 극히 드물다
=> undefined 밖에 선언 할 수 없어서 활용이 떨어진다
function print(): void {
console.log('Hello');
return;
}
let unusable: void = undefined //
never
Application에서 예상치 못한, 핸들링 할 수 없는 문제가 발생했을 때 실행 할 수 있는 함수이다.
이는 다른 것을 return 할 수 없다.
function throwError(message: string): never {
// message -> server에 log를 남기고,
throw new Error(message); // Error를 던지게 하던지
or
while(true) {}
이렇게 while문을 돌면서 끝나지 않도록 작성해야한다
Object는 간단히 말하면 key-value 저장소라고 할 수 있다.
원시타입이 아닌 것을 Object라고 할 수 있으며 이러한 개념들은 함수들과 배열들도 포함된다.
그래서 원시 타입을 제외한 어떠한 object나 Array를 넣을 수 있다
하지만 가능한 정확한 object를 명시해서 사용하는 것이 좋다
let obj: object;
function appectSomeObject(obj: object) {}
appectSomeObject({ name : 'DANIEL' })
appectSomeObject({ animal : 'CAT' })
}