반응형
- 오브젝트와 레퍼런스 형태가 안니 실제 값을 저장하는 자료형
- 프리미티브 형의 내장 함수를 사용한 것은 자바스크립트 처리 방식 덕분
- (ES2015 기준) 6가지: boolean, number, String, symbol(ES2015), null, undefined
- literal 값으로 Primitive 타입의 서브 타입을 나타낼 수 있다.
Boolean
아래와 같이 (TypeScript 파일을 작성)
let isDone: boolean = false;
isDone = true;
console.log(typeof isDone);
터미널에 명령어: npx tsc 입력 (같은 이름의 js파일이 생성됨)
명령어 node boolean.js 입력(js파일이 실행, 콘솔 로그 찍히는 것을 확인)
Boolean 타입으로 선언
let isOk: Boolean = true;
// 에러발생
let isNotOk: boolean = new Boolean(true);
Number
- JavaScript와 같이, TypeScript의 모든 숫자는 부동 소수점 값이다.
- TypeScript는 16진수 및 10진수 리터럴 외에도, ECMAScript 2015에 도입된 2진수 및 8진수를 지원합니다.
- NaN, 1_000_000과 같은 표기 가능
// 10진수
let decimal: number = 6;
console.log(decimal);
// 16진수
let hex: number = 0xf00d;
console.log(hex);
// 2진수
let binary: number = 0b1010;
console.log(binary);
// 8진수
let octal: number = 0o744;
console.log(octal);
let notANumber: number = NaN;
console.log(notANumber);
let underscoreNum: number = 1_000_000;
console.log(underscoreNum);
String
- 다른 언어에서와 마찬가지로 텍스트 형식을 참조하기 위해 'String' 형식을 사용
- JavaScript와 마찬가지로, TypeScript는 문자열 데이터를 둘러싸기 위해 큰 따옴표 (") 나, 작은 따옴표(')를 사용
let myName: string = 'Mark';
myName = "Anna";
Template String
- 행에 걸쳐 있거나, 표현식을 넣을 수 있는 문자열
- 이 문자열은 backtick(=backquote) 기호에 둘러쌓여 있다.
- 포함된 표현식은 '${expr}' 와 같은 형태로 사용
let fullName: string = 'Mark Lee';
let age: number = 39;
let sentence: string = `Hello, My name is ${fullName}.
I'll be ${age + 1} years old next month.`;
console.log(sentence);
띄어쓰기와 변수명 입력 모두 가능
Symbol
- ECMAScript 2015의 Symbol
- new Symbol로 사용할 수 없다.
- Symbol을 함수로 사용해서 symbol 타입을 만들어 낼 수 있다.
처음 사용할 경우 에러 발생
console.log(Symbol('foo'));
tsconfig.json 파일을 수정
다시 와서 확인하면 에러가 발생하지 않는다.
같은지 비교
console.log(Symbol("foo") === Symbol("foo")); // fasle
- 프리미티브 타입의 값을 담아서 사용
- 고유하고 수정불가능한 값으로 만들어준다.
- 그래서 주로 접근을 제어하는데 쓰는 경우가 많았다.
심볼 타입에 데이터 넣는 방법
// 고유한 값 생성
const sym = Symbol();
const obj = {
[sym]: "value"
}
console.log(obj[sym]);
반응형
'프론트엔드 > TypeScript' 카테고리의 다른 글
any (0) | 2021.06.15 |
---|---|
Array (0) | 2021.06.14 |
object (0) | 2021.06.14 |
Undefined & Null (0) | 2021.06.14 |
Type Script 시작 (0) | 2021.06.08 |