단진
대체로 맑음
단진
  • 분류 전체보기 (162)
    • 개발 (112)
      • 회고 (25)
      • 개발과정 (28)
      • 개념 (14)
      • JavaScript (11)
      • TypeScript (12)
      • 알고리즘 (4)
      • GitHub (4)
      • 오류 (9)
      • TMI (5)
    • 일상 (15)
      • 사진 및 여행 (6)
      • 책 소개 (4)
      • 기타 TMI (5)
    • IT (16)
      • 개념 (5)
      • 데이터베이스 (6)
      • 딥러닝 (1)
      • TMI (4)
    • TMI (4)
      • 법률 TMI (4)
    • 보안 (15)
      • Dreamhack (5)
      • Root Me (10)
hELLO · Designed By 정상우.
단진

대체로 맑음

6. 타입스크립트(TypeScript) - 타입 & Call Signature
개발/TypeScript

6. 타입스크립트(TypeScript) - 타입 & Call Signature

2022. 9. 4. 01:30

1. JS에도 있는 타입

let a : undefined = undefined;
let b : null = null;

// 두 타입은 JS에도 있다

가끔 우리는 선택적 타입을 사용하는데 선택적 타입은 undefined가 될 수 있다

 

위에서 사용했던 ?

→ 특정 타입이거나 undefined거나

 

 

1.1. any

→ TS로부터 빠져나오고 싶을 때 쓰는 타입

→ TS에게 바보같은 코딩을 하고 싶다고 허락을 받는다고 생각하면 됨

→ any를 사용하면 TS로부터 빠져나와 안전장치가 없는 JS로 들어간다

const a : any[] = [1, 2, 3, 4]
const b : any = true

a + b // any를 사용했으므로 잘못된 코드이지만 실행된다

 

 

2. TS에만 있는 타입

→ TS에서 중요한 것은 Type Checker와 소통하는 것

 

 

2.1. unknown

→ 어떤 타입인지 모를 때 사용

let a : unknown;

unknown을 사용하면 TS로부터 보호를 받게 된다

→ 어떤 작업을 하려면 해당 변수의 타입을 먼저 확인해야 하는 방식

let a : unknown;

if (typeof a === "number") {
	let b = a + 1;
};
if (typeof a === "string") {
	let b = a.toUpperCase();
};

// 이와 같이 우선 a의 타입이 무엇인지 부터 확인해야 한다

 

 

2.2. void

→ 아무것도 return하지 않는 함수를 대상으로 사용

function hello() {
	console.log("x");
}

보통 void는 따로 지정하지 않는다. 위와 같이 작성하면 TS가 자동으로 인식하여 hello 함수에 void 타입을 적용한다

function hello() {
	console.log("x");
};

const a = hello();
a.toUpperCase(); // 오류 발생

 

 

2.3. never

→ 함수가 절대 return하지 않을 때 발생 (예를 들어 함수에서 exception(예외)이 발생할 때)

function hello(): never {
	throw new Error("xxx");
};

// return 없이 오류를 발생시키는 함수
function hello(name:string|number) {
	if (typeof name === "string") {
		name; // name은 string
	} else if (typeof name === "number") {
		name; // name은 number
	} else {
		name; // string과 number를 제외한 나머지 타입의 경우 never 타입
	};
};

위의 코드에서 name인자가 string이나 number로 제대로 들어간다면 else문은 절대 실행되지 않는다

 

 

예상 사용 빈도 : void > unknown >>> never(거의 사용하지 않지만 알고 있는 것이 좋음)

 

 

3. Call Signature

→ 함수 위에 마우스를 올렸을 때 보게 되는 것

→ 함수를 어떻게 호출해야하는 것인지 알려준다

→ 인자의 타입이랑 함수의 반환 타입을 알려주는 것

const Add = (a:number, b:number) => number; // 이것이 Call Signature

const add:Add = (a, b) => a + b;
  1. 먼저 함수의 타입을 설명하고
  2. 코드를 구현

'개발 > TypeScript' 카테고리의 다른 글

8. 타입스크립트(TypeScript) - Concrete Type & Generic Type  (0) 2022.09.04
7. 타입스크립트(TypeScript) - Overloading & Polymorphism (다형성)  (0) 2022.09.04
5. 타입스크립트(TypeScript) - Readonly & Tuple  (0) 2022.09.04
4. 타입스크립트(TypeScript) - Alias(별칭) & return 타입 지정  (0) 2022.09.03
3. 타입스크립트(TypeScript) - 타입(Type)  (0) 2022.09.03
    '개발/TypeScript' 카테고리의 다른 글
    • 8. 타입스크립트(TypeScript) - Concrete Type & Generic Type
    • 7. 타입스크립트(TypeScript) - Overloading & Polymorphism (다형성)
    • 5. 타입스크립트(TypeScript) - Readonly & Tuple
    • 4. 타입스크립트(TypeScript) - Alias(별칭) & return 타입 지정
    단진
    단진

    티스토리툴바