TypeScript
[TS] TypeScript 자료형_Primitive Types
Toproot
2021. 8. 30. 11:51
728x90
728x90
📘 TypeScript와 JavaScript 비교
Static Types(ts)
set during development
function add(n1: number. n2:number) {
return n1 + n2;
}
const result = add(39, 28);
Dynamic Types(js)
resolved at runtime
function add(n1, n2) {
if (typeof n1 !== 'number' || typeof n2 !== 'number') {
throw new Error('Incorrect input!');
}
return n1 + n2;
}
const result = add(39, 28);
- 프로그램이 유용하려면, 가장 간단한 데이터 단위로 작업 할 수 있어야 합니다.
- numbers, string, structures, boolean 값 등등
- TypeScript에서, 우리는 JavaScript에서 기대하는 것과 동일한 타입을 지원하며, 돕기 위해 추가적인 열거타입이 제공되었습니다.
ECMAScript 표준에 따른 기본 자료형은 6가지
- TS에서 프로그램 작성을 위해 기본 제공하는 데이터 타입
- 사용자가 만든 타입은 결국은 이 기본 자료형들로 쪼개집니다.
- JS 기본자료형을 포함(superset)
- Boolean
- Number
- String
- Null
- Undefined
- Symbol(ECMAScript 6에 추가)
- Array: Object형
- 프로그래밍을 도울 몇가지 타입이 더 제공됩니다.
- Any, Void, Never, Unknown
- Enum
- Tuple : object형
📘 Primitive Types
- 오브젝트와 레퍼런스 형태가 아닌 실제 값을 저장하는 자료형입니다.
- 프리미티브 형의 내장 함수를 사용 가능한 것은 자바스크립트 처리 방식 덕분
- (ES2015 기준) 6가지
- boolean
- number
- string
- symbol(ES2015)
- null
- undefined
- literal 값으로 Primitive 타입의 서브 타입을 나타낼 수 있다.
- true; 'hello'; 3.14; null; undefined;
- 또는 래퍼 객체로 만들 수 있다.
new Boolean(false); //typeof new Boolean(false) : 'object' new String('world'); //typeof new String('world') : 'object' new Number(42); //typeof new Number(42) : 'object'
Type Casing
- Ts 의 핵심 primitive types은 모두 소문자입니다.
- Number, String, Boolean, Symbol 또는 Object 유형이 위에서 권장한 소문자 버전과 동일하다고 생각하고 싶을 수 있습니다.
- 그러나 이러한 유형은 언어 primitives를 나타내지 않으며, 타입으로 사용해서는 안됩니다.
function reverse(s: String): String { return s.split("").reverse().join(""); } reverser("hello world");
- 대신 number, string, boolean, object and symbol 타입을 사용하십시오.
function reverse(s: string): string { return s.split("").reverse().join(""); } reverse("hello world");
기본 프로젝트 생성 후 아래 타입 실습!
// package.json 생성
npm init -y
// 개발용으로 TS 설치
npm i typescript -D
// 프로젝트 루트경로에 tsconfig.json 파일이 생긴 것.
npx tsc --init
// tsconfig.json에서 이부분 확인하기.
"strict": true,
// JS로 컴파일
npx tsc
// 파일 실행
noe [파일명]
728x90
728x90