[TS 입문] 3. 변수와 함수 타입 정의하기

김혜지·2020년 11월 14일
0

기본 타입

  • Boolean
  • Number
  • String
  • Object
  • Array
  • Tuple
  • Enum
  • Any
  • Void
  • Null
  • Undefined
  • Never
const bool: boolean = true;
const num: number = 1;
const str: string = 'hello';
const obj: object = {};
const obj2: { name: string, age: number } = { // 객체의 프로퍼티와 타입까지 지정
  name: 'hyex',
  age: 100
};
const arr: Array<number> = [1,2,3]; // 숫자만 허용
const arrLiternal: number[] = [1,2,3] // 위 배열과 동일. liternal 선언 방식
const arr2: Array<string> = ['a', 'b', 'c']; // 문자만 허용
const tuple: [string, number] = ['a', 100]; // tuple: 순서와 길이가 고정된 배열 형식
enum Avengers { Capt, IronMan, Thor } // 상수 값들의 집합
let hero: Avengers = Avengers.Capt;
let hero: Avengers = Avengers.[0];
const any: any = ['a', 2, true]; // 모든 타입을 허용
const unsueful: void = undefined // undefined와 null만 할당
function notuse(); void { // 반환할 수 없음
  console.log('cannot return')
}
function neverEnd(): never { // 함수의 끝에 절대 도달하지 않음
  while (true) { ... }

함수

  • 함수의 파라미터(매개변수) 타입
  • 함수의 반환 타입
  • 함수의 구조 타입
function sum(a: number, b: number): number {
  return a + b;
}

sum(10, 20, 30) // 1. error, too many parameters 
sum(10)  // error, too few parameters

function add(a: number, b?: number): number {
  return a + b;
}
sum(10) // 2. optional parameter
  1. javascript는 함수 선언 시에 파라미터의 개수가 몇 개로 정해져있는 지에 대해 에러 처리를 하지 않는다. 하지만 typescript는 이를 엄격하게 제한한다.
  2. optional parameter를 사용해서 2번째 파라미터를 넘기지 않아도 에러 처리를 하지 않는다.
profile
Developer ( Migrating from https://hyex.github.io/ )

0개의 댓글