본문 바로가기

TypeScript/Handbook

[TypeScript] 01. Basic Types

원문 : https://www.typescriptlang.org/docs/handbook/basic-types.html


TypeScript에서 지원하는 기본 타입들에 대해 알아보자


Boolean

true 또는 false 값

let isDone: boolean = false;



Number

부동 소수점 값. 2진수, 8진수, 16진수 등을 표현 할 수 있다.

let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;



String

말 그대로 String. 따옴표, 쌍따옴표 둘다 사용가능.

backtick/backquote (`) 로 둘러싸면 멀티라인 문자열이나 템플릿 스트링을 사용할 수 있다.

let fullName: string = `Bob Bobbington`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ fullName }.

I'll be ${ age + 1 } years old next month.`;

//아래 표현식과 같은 결과
//let sentence: string = "Hello, my name is " + fullName + ".\n\n"
//                             + "I'll be " + (age + 1) + " years old next month.";



Array

TypeScript에서 배열을 선언 하는 방법은 "[]" 를 사용하는 방법과, "Array<타입>"을 사용하는 2가지 방법이 있다.

let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];



Tuple

튜블은 (python 에서와 같이) 고정된 사이즈의 배열을 사용할때 쓰인다. 변수를 선언할때 이미 사이즈를 알고 있어야 하며, 배열 원소들이 모두 같은 데이터 타입일 필요는 없다.

// Declare a tuple type
let x: [string, number];
// Initialize it
x = ["hello", 10]; // OK
// Initialize it incorrectly
x = [10, "hello"]; // Error

사전에 정의된 원소가 아닌 경우 union type 으로 사용된다. (union type에 대해서는 나중에 다시 다룬단다.)



Enum

TypeScript에 있는 아주 유용한 타입이다. C#이나 Java의 Enum과 같다.

enum Color {Red, Green, Blue}
let c: Color = Color.Green;

//원래는 0부터 시작하지만 이렇게 하면 1부터 시작됨
enum Color2 {Red = 1, Green, Blue}

//모든 값을 임의로 지정 할 수 있음
enum Color3 {Red = 1, Green = 2, Blue = 4}

//값으로 이름(문자열)을 가져올 수도 있음
let colorName: string = Color[2];



Any

프로그램을 작성 할 당시 어떤 타입이 올지 모르는 경우 (3rd party library를 사용하는 경우와 같은...) 사용한다.

let notSure: any = 4;
notSure = "maybe a string instedad";
//string 타입으로 사용했다 boolean 타입으로도 사용 가능하다.
notSure = false;

//배열에 여러가지 타입이 혼재되어 있는경우 유용하다.
let list: any[] = [1, true, "free"];
list[1] = 100;



Void

아무값도 가지지 않음을 뜻한다. 주로 아무 값도 리턴하지 않는 함수의 리턴타입이나, 아무값도 가지지 않는(undefined 또는 null) 변수에 사용된다.

function warnUser(): void {
    alert("This is my warning message");
}

//아무값도 가질 수 없는 함수
let unusable: void = undefined;



Null and Undefined

null이나 undegined 는 void 만큼 유용하게 사용되지는 않는다. 따로 타입이 존재하긴 하지만 다른 데이터 타입들도 null 이나 undefined 값을 가질 수 있다.

let u: undefined = undefined;
let n: null = null;



Never

항상 예외를 던지거나, 결과를 반환하지 않는 경우 사용된다. (무슨 말이야??)

// Function returning never must have unreachable end point
function error(message: string): never {
    throw new Error(message);
}

// Inferred return type is never
function fail() {
    return error("Something failed");
}

// Function returning never must have unreachable end point
function infiniteLoop(): never {
    while (true) {
    }
}



Type assertions

type assertions는 다른 언어의 형 변환 같은 기능(?)이다. "<>" 를 이용하는 방법과 "as"를 이용하는 방법이 있는데 JSX와 TypeScript를 사용하는경우 "as" 를 사용하는 방법만 허용이된다.

let someValue: any = "this is a string";
let strLength: number = (someValue).length;

let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;





반응형

'TypeScript > Handbook' 카테고리의 다른 글

[TypeScript] 05. Functions  (0) 2018.01.31
[TypeScript] 04. Classes  (0) 2017.07.07
[TypeScript] 03. Interfaces  (0) 2017.05.04
[TypeScript] 02. 변수 선언  (0) 2017.04.25
[TypeScript] 00. 시작하기  (0) 2017.04.21