본문 바로가기
프론트개발/TypeScript

[TypeScript] 타입 스크립트의 타입(1)

by YoungJu 2022. 7. 16.
반응형
SMALL

Primitive Type

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

- 리터럴 값으로 프리미티브 타입의 서브 타입을 나타낼 수 있다. 

        true값은 Boolean 중 참의 값을 가진 boolean의 서브타입이고 3.14라는 숫자는 전체 number타입의 서브 타입이 된다. 

- 래퍼 객체로도 만들 수 있다. 

new Boolean(true);  // typeof new Boolean(true) : 'object'
new String('hello'); // typeof new String('hello') : 'object'
new Number(12); // typeof new Number(12) : 'object'

boolean

- 기본적인 데이터 타입

- 단순한 true, false

- boolean은 프리미티브 타입의 불린, Boolean은 레퍼 오브젝트의 생성자 class이다. JS에서는 차이가 크게 없지만, TS에서는 차이가 있다. 되도록 소문자를 권장한다. 

number

- 숫자를 나타내는 기본적인 타입

- js와 같이 모든 숫자는 부동 소수점 값이다. 

- 2진수 및 8진수를 지원한다. 

- 1_000_000 표기 가능 

string

- 텍스트 형식을 탐조하기 위해 string형식을 사용한다. 

- 문자열 데이터를 둘러싸기 위해 따옴표를 사용한다. 

 - Template String

 - 행에 결쳐 있거나, 표현식을 넣을 수 있는 문자열

- backtic(``)기호에 둘러싸여 있다. 

- `${}` 로 사용

let age: number = 20;
let example: string = `I'm ${age} ears old`

Symbol

- new Symbol로 사용 불가.

- Symbol 함수로 사용해서 symbol타입을 생성.

console.log(Symbol('a') === Symbol('a'));
// false

const sym = Symbol();
const obj = {
	[sym]: "value",
};

obj["sym"];   //접근 불가
obj[sym];     //접근 가능

- 프리미티브 타입의 값을 담아서 사용.

- 고유하고 수정불가능한 값으로 만들어 준다.

- 접근 제어용으로 사용.

Undefined & Null

- 소문자로만 존재한다. 

- 실제로 각각 undefined, null 타입을 가진다. 

- 따로 설정하지 않으면 다른 모든 타입의 하위 타입으로 존재한다. 

- 컴파일 옵션에서 --strickNullChecks 옵션을 사용하면 null, undefined는 void나 자기 자신에게만 할당이 가능하다.

- number에 null이나 undefined를 할당하려면 union type을 사용해야 한다. 

let YourName: string = null; //error가 뜨면 strickNullChecks옵션이 적용되어 있다는 것.

let uni: string | null = null;    //union type
uni = "Hello";

NULL

- null이라는 값으로 할당된 것

- 사용할 준비가 덜 된 상태.

- null 값만 가질 수 있음.

- typeof => object

undefined

- 값을 할당하지 않은 변수

- 준비가 안된 상태.

- 객체에서 property가 없을 때.

- typeof => undefined

object

// object literal
const man = {name: 'jone', age: 45};
// "{name: string, age: number}" type.

const woman = Object.create({name: 'sara', age: 40});
//Object.create(40); X

let obj: object = {};
obj = {name: 'main'};
obj = true //error
obj = null //error

- primitive type이 아닌 것 을 나타냄.

- non-primitive type : NOT number, string, boolean, bigint, symbol, null, undefined.

반응형

댓글