Typescript 기초(1) – Basic Types

Typescript Handbook / Developer’s Record 를 참고했습니다.

String, Number, Boolean

let myName: string = "윤병인"
let age: number = 25
let hasGirlFriend: boolean = false

Array

let list1: number[] = [1, 2, 3]
let list2: Array<number> = [1, 2, 3]
let list3: Array<string> = ["A", "B", "C"]

Tuple

let x: [string, number]
x = ["Hello", 100]

// ERROR
x = ["Hello", 100, 500] // Type '[string, number, number]' is not assignable to type '[string, number]'.

Enum

enum Color {
  Red,
  Green,
  Blue
}
let c: Color = Color.Green;
console.log(c); // 1

Red를 3으로 하면 Green, Blue는 자동으로 4, 5가 된다.

enum Color {
  Red = 3,
  Green,
  Blue
}
let c: Color = Color.Green;
console.log(c); // 4

하나하나 값을 설정할 수 도 있다.

enum Color {
  Red = 3,
  Green = 100,
  Blue = 200
}
let c: Color = Color.Green;
console.log(c); // 100

반대로 Red, Green, Blue를 얻을수도 있다.

enum Color {
  Red = 3,
  Green = 100,
  Blue = 200
}
let colorName: string = Color[100];
console.log(colorName); // Green

Any

let notSure: any = 4
notSure = "뭐 어때"
notSure = true
notSure = [1, '2', false, new Object()]
notSure.testFunction();

Void, Null, Undefined

Void

function doNothing1() { }
function doNothing2(): void { }
function doNothing3(): void {
  return undefined;
}

null을 넣을 수는 없다.

function doNothing4(): void {
  return null; // ERROR : Type 'null' is not assignable to type 'void'.
}

Null

let a: null = null
a = undefined // ERROR : Type 'undefined' is not assignable to type 'null'.

function sayHi(message: string | null) {
  console.log(message);
}

sayHi() // ERROR : An argument for 'message' was not provided.

undefined

let iDontKnow: undefined = undefined;

// optional property는 기본적으로 undefined이다
function sayHi(message?: string) {
  console.log(message);
}
sayHi(); // 인자값이 없어도 호출은 된다

Never

function error(message: string): never {
  throw new Error(message);
}

function infiniteLoop(): never {
  while(true) {
    console.log("도르마무 거래를 하러왔다!");
  }
  // 여기는 절대(never) 읽히지 않는다.
}

코드가 끝까지 읽히지 않는다는걸 표시할때 쓴다.

Object

let obj: Object = {
  apple: "사과",
  banana: "바나나",
  year: 2019
}

Type Casting

let someValue = "This is string"
let strLength: number = (<string>someValue).length;
strLength = (someValue as string).length

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Up Next:

Back To The Basic

Back To The Basic