TypeScript - type, function

River·2023년 6월 20일
0

TypeScript

목록 보기
1/1

Type

  • TypeScript 는 JavaSript 과 거의 동일한 데이터 타입 지원
  • 열거 타입 사용해 더 편리하게 사용 가능

Tuple

  • 요소의 타입과 개수가 고정된 배열 표현
let x: [string, number[;
x = ["hello", 10];
  • 정해진 인덱스에 위치한 요소 외 다른 인덱스의 요소에 접근 시 오류 발생

Null and Undefined

  • 다른 모든 타입의 하위 타입
  • number 와 같은 타입에 할당 가능
let u: undefined = undefined;
let n: null = null;
  • --strictNullChecks 사용 시 오직 any 와 자신들 타입에만 할당 가능
  • 예외적으로 undefined 은 void 에 할당 가능

Never

  • 절대 발생할 수 없는 타입을 나타냄
  • 모든 타입에 할당 가능한 하위 타입 (단, 어떤 타입도 never 에 할당할 수 있거나 하위 타입 아님을 명심)
function error(message: string): never {
    throw new Error(message);
}
// 반환 타입이 never로 추론
function fail() {
    return error("Something failed");
}
// never를 반환하는 함수는 함수의 마지막에 도달 불가능
function infiniteLoop(): never {
    while (true) {
    }
}

Type assertions

  • angle-bracket '<>'
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
  • as
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

Function

  • JS 과 동일하게 named function, anonymous function 생성 가능
  • 함수 외부 변수 참조 가능 (변수 capture)
let lastNum = 100;
function addTolastNum(x,y) {
	return x + y + lastNum;
}

Function Types

  • 반환문을 통해 반환 타입 파악 가능 -> 반환 타입 생략 O
function add(x: number, y: number): number 
{ return x + y;}
let myAdd = function(x: number, y: number): number 
{ return x + y };
  • 타입 2종류: 매개변수 타입, 반환 타입
  • 매개변수 타입과 반환 타입 사이에 '=>' 사용해 반환 타입 분명하게 선언 가능
  • 만약 값을 반환하지 않는 함수라면 void 를 써서 표시
  • 캡처된 변수는 타입에 반영되지 않음 (API 구성 X)

Inferring the types

  • Contextual typing: TypeScript 컴파일러로 타입 추론 (한쪽에만 타입 있어도 타입 도출 가능)

profile
Passionate about My Dreams

0개의 댓글