Typescript
Static Types(set during dev)
Javascript
Dynamic Types(resolved at runtime)
=> 타입스크립트에서 먼저 에러 발견 가능
타입스크립트에서 사용하는 데이터 타입
Boolean, Number, String, null, undefined, Array, Symbol, Any, Void, Unknown, Never, Enum, Tuple
오브젝트와 레퍼런스 형태가 아닌 실제 값을 저장하는 자료형
프리미티브형의 내장 함수를 사용 가능한 것은 자바스크립트 처리 방식 덕분
Boolean, Number, String, null, undefined, Symbol
- 리터럴 값으로 프리미티브 타입의 서브 타입을 나타낼 수 있다. - 또는 래퍼 객체로 만들 수 있다. -
let isDone: boolean = false;
isDone = ture;
console.log(typeof isDone); // boolean
let isOk: Boolean = ture;
let isNotOk: boolean = new Boolean(true);
let decimal: number = 6; // 10진수
let hex: number = 0xf00d; // 16진수
let bunary: number = 0b101; // 2진수
let octal: number = 0o744; // 8진수
let NotANumber: number = NaN;
let underscoreNum: number = 1_000_000;
let myName: string = 'dongduu';
myName = "dongju";
행에 걸쳐있거나 표현식을 넣을 수 있는 문자열
이 문자열은 백틱 기호에 둘러 쌓여 있음
${expr}
let sentence: string = `hello my name is &{myName}
bye`
new Symbol 사용 불가능
symbol을 함수로 사용해서 symbol 타입을 만들 수 있음
프리미티브 타입의 값을 담아서 사용
고유하고 수정 불가능한 값으로 만들어줌
주로 접근을 제어하는데에 많이 사용
const sym = Symbol();
const obj = {
[sym]: "value",
}
obj[sym]
둘 다 소문자만 존재(값과 타입)
number에 null 또는 undefined를 할당 가능
(컴파일 옵션에서 --strictNullChecks
를 사용하면 null과 undefined는 void나 자기 자신에만 사용 가능)
=> 이 경우, null과 undefined를 할당할 수 있게 하려면 union type을 이용해야 함
null은 null 타입만 가질 수 있음
null을 런타임에서 typef 연산자를 통해 알아내면 object임
undefined을 런타임에서 typef 연산자를 통해 알아내면 undefined임
let myName: string = null; // 사용 가능
let myName: string = undefined; // 사용 가능
let v: void = undefined;
let union: string | null = null;