TypeScript Essentials - ch.2 Basic Types (1) ~ (7)

이동주·2021년 12월 22일
0

1. TypeScript Types vs JavaScript Types

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

2. TypeScript Types vs JavaScript Types

  • 오브젝트와 레퍼런스 형태가 아닌 실제 값을 저장하는 자료형

  • 프리미티브형의 내장 함수를 사용 가능한 것은 자바스크립트 처리 방식 덕분

  • Boolean, Number, String, null, undefined, Symbol

- 리터럴 값으로 프리미티브 타입의 서브 타입을 나타낼 수 있다.
- 또는 래퍼 객체로 만들 수 있다.
- 

3. Boolean

let isDone: boolean = false;
isDone = ture;
console.log(typeof isDone); // boolean

let isOk: Boolean = ture;
let isNotOk: boolean = new Boolean(true);

4. Number

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;

5. String

let myName: string = 'dongduu';

myName = "dongju";

Template String

  • 행에 걸쳐있거나 표현식을 넣을 수 있는 문자열

  • 이 문자열은 백틱 기호에 둘러 쌓여 있음

  • ${expr}

let sentence: string = `hello my name is &{myName}

bye`

6. symbol

  • new Symbol 사용 불가능

  • symbol을 함수로 사용해서 symbol 타입을 만들 수 있음

프리미티브 타입의 값을 담아서 사용
고유하고 수정 불가능한 값으로 만들어줌
주로 접근을 제어하는데에 많이 사용

const sym = Symbol();

const obj = {
	[sym]: "value",
}
obj[sym]

7. null & undefined

  • 둘 다 소문자만 존재(값과 타입)

  • number에 null 또는 undefined를 할당 가능
    (컴파일 옵션에서 --strictNullChecks를 사용하면 null과 undefined는 void나 자기 자신에만 사용 가능)
    => 이 경우, null과 undefined를 할당할 수 있게 하려면 union type을 이용해야 함

  • null은 null 타입만 가질 수 있음

  • null을 런타임에서 typef 연산자를 통해 알아내면 object임

  • undefined을 런타임에서 typef 연산자를 통해 알아내면 undefined임

strict 주석 시

let myName: string = null; // 사용 가능
let myName: string = undefined; // 사용 가능

strict 주석 해제 시

let v: void = undefined;

let union: string | null = null;
profile
안녕하세요 이동주입니다

0개의 댓글