TypeScript 01

김민호·2022년 2월 3일
0

1. 기본 타입

  • String : let str: string = 'hi';
  • Number : let num: number = 10;
  • Boolean : let isLoggedIn: boolean = false;
  • Object :
  • Array : let arr: number[] = [1,2,3]; 또는
    제네릭 let arr: Array<number> = [1,2,3];
  • Tuple -> 배열의 길이가 고정되고 각 요소의 타입이 지정되어 있는 배열 형식 : let arr: [string, number] = ['hi', 10];
  • Enum -> 특정 값(상수)들의 집합을 의미
enum Avengers { Capt, IronMan, Thor }
let hero: Avengers = Avengers.Capt;
// 그냥 { } 안의 요소가 값(상수) 자체이다

enum Avengers { Capt, IronMan, Thor }
let hero: Avengers = Avengers[0]; // Capt
// 인덱스 번호로 접근 가능 

enum Avengers { Capt = 2, IronMan, Thor }
let hero: Avengers = Avengers[2]; // Capt
let hero: Avengers = Avengers[4]; // Thor
// Capt = 2에서 2는 값이 아니라 인덱스이므로 Thor는 4가 됨
  • Any -> 단어 의미 그대로 모든 타입에 대해서 허용한다는 의미
let str: any = 'hi';
let num: any = 10;
let arr: any = ['a', 2, true];
  • Void -> 변수에는 undefined와 null만 할당하고, 함수에는 반환 값을 설정할 수 없는 타입
let unuseful: void = undefined;
function notuse(): void {
  console.log('sth');
}
  • Never -> 함수의 끝에 절대 도달하지 않는다는 의미를 지닌 타입
function neverEnd(): never {
  while (true) {

  }
}

2. 타입스크립트에서의 함수

함수의 기본적인 타입 선언

function sum(a: number, b: number): number {
  return a + b;
}

함수의 반환 값에 타입을 정하지 않을 때는 void라도 사용

함수의 인자

자바스크립트는 정의된 매개변수의 갯수 만큼 인자를 넘기지 않아도 되지만 타입스크립트는 무조건 맞춰서 넘겨야 하며 undefined나 null이라도 넘겨야 한다. 정의된 매개변수 값만 받을 수 있고 추가나 부족할 시 에러 발생

function sum(a: number, b: number): number {
  return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30); // error, too many parameters
sum(10); // error, too few parameters

만약 JS 처럼 쓰고 싶다면 (= 정의된 매개변수와 상관없이 쓰고 싶다면) ? 사용

function sum(a: number, b?: number): number {
  return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30); // error, too many parameters
sum(10); // 10

매개변수를 디폴트 값으로 설정해줄 수도 있음

function sum(a: number, b = '100'): number {
  return a + b;
}
sum(10, undefined); // 110
sum(10, 20, 30); // error, too many parameters
sum(10); // 110

3. this ✍️

profile
개발자로서의 삶은 https://velog.io/@maxminos 에서 기록하고 있습니다 😀

0개의 댓글