히치키치

[타입스크립트 핸드북] : 기본 타입 & 함수 본문

FE

[타입스크립트 핸드북] : 기본 타입 & 함수

히치키치 2022. 9. 20. 16:43
더보기

💙 타입스크립트 기본 타입 :

string, number, boolean,

object, array, enum,

any, void, null, undefined, never

 

1. 기본 타입

// 숫자
let age:number=30;
// 불리언
let isAdult:boolean=true;
// Object : 배열 - 숫자
let a:number[]=[1,2,3];
let a2:Array<number>=[1,2,3];
// Object : 배열 - 문자열
let b:string[]=["a","b","c"];
let b2:Array<string>=["a","b","c"];

2. Object : 튜플

// Object : 배열 - 첫번째 원소 : 문자열, 두번째 원소 : 숫자
let b:[string, number] = ["ab", 1];

b = [1, "a"]; 
// 에러 발생 

b[0].toUpperCase();
// b[0]이 문자열이기 때문에 문자열 메소드 사용 가능

b[1].toUpperCase();
// b[1]은 숫자이기 때문에 문자열 메소드 사용 불가능

3. void : 함수에서 아무 것도 반환되지 않는 경우

더보기

function 함수명(인자) : 함수반환타입 {}

function sayHello():void{
    console.log("say Hello");
}

sayHello();

4. never

1. 항상 에러를 반환하는 경우
function showError():never {
	throw new Error();
}

2. 영원히 끝나지 않는 함수 타입
function infLoop():never {
	while (true) {
    	console.log("Infinite Loop")
    }
}

5. enum

  • 클래스를 상수처럼 사용 가능
  • Enum 클래스를 구현하는 경우 : 상수값과 같이 유일하게 하나의 인스턴스가 생성되어 사용됨
  • 서로 관련이 있는 상수값 모아 enum으로 구현해 유용
  • 클래스와 같은 문법 체계
  • 상속 지원하지 않음
enum OS{
    Window, // 자동으로 0
    Ios, // 자동으로 1
    Android // 자동으로 2
}

// 값이 숫자인 경우 양방향으로 매핑 가능
console.log(OS[2]); // Android
console.log(OS["Android"]) // 2
// 값을 명시적으로 할당하지 않은 경우 순차적인 값이 할당됨
enum OS{
    Window = 3,
    Ios = 10, 
    Android // 자동으로 11
}

console.log(OS[10]); // Android
console.log(OS["Android"]) // 11
enum OS{
    Window = "window",
    Ios = "ios", 
    Android="android" // 자동으로 11
}
// 값이 문자인 경우 단방향 매핑만 가능
console.log(OS["Ios"]); // "ios"
console.log(OS["android"]) // 에러발생

6. null

let a : null = null;

7. undefined

let b : undefined = undefined;
더보기

💙 타입스크립트 활용한 함수의 3가지 타입 정의

1. 함수 반환 타입 정의

2. 함수 인자 타입 정의

3. 함수 구조 타입 정의

Comments