기본(이론)_TypeScript

miin·2022년 7월 19일
0

TypeScript

목록 보기
1/9
post-thumbnail

정의

  • 웹 브라우저는 타입스크립트 파일을 해석할 수 없습니다
  • 컴파일 시점에 타입을 검사합니다
  • 에디터 확장시, 실시간으로 타입을 검사합니다

제너릭(Generics)

클래스나 함수가 사용될 때 타입을 설정합니다

인터페이스(Interface)

타입 검사를 요구합니다

javaScript

const color = 'blue'

typeScript

  • 기존 코드에서 타입만 붙여준다
    const color: string = 'blue

배열(Array)

  1. 타입 뒤에 대괄호를 사용하는 방법
    const list: number[] = [1, 2, 3]
  2. 제네릭 배열 타입을 사용하는 방법
    Array<elemType>
    const list: Array<number> = [1, 2, 3]

튜플(Tuple)

튜플 타입을 사용하려면 순서를 맞춰줘야 에러가 나지 않습니다

// 튜플 타입으로 선언
let x: [string, number];
// 초기화
x = ["hello", 10]; // 성공
// 잘못된 초기화
x = [10, "hello"]; // 오류

//접근방식
console.log(x[0]. );

열거(Enum)

기본적으로, enum은 0부터 시작하여 멤버들의 번호를 매깁니다.
멤버 중 하나의 값을 수동으로 설정하여 번호를 바꿀 수 있습니다.

enum Color {Red, Green, Blue}
=>
enum Color {Red = 1, Green = 2, Blue = 4}

const colorName: string = Color[2];

console.log(colorName); // 값이 2인 'Green'이 출력됩니다.

Any

정확하지 않은 타입을 표현해야 할 수도 있는데, 이런 경우에는 타입 검사를 하지 않습니다
const a: any = ''
const list: any[] = [...]

Void

  • 쉽게 말하면 any의 반대 타입입니다.
  • 보통 함수에서 반환값이 없을 때 반환 타입을 표현하기 위해 사용됩니다.
  • null(--stricNullChecks를 사용하지 않을 때만 해당)
  • undefined만 할당할 수 있습니다.
  • 그래서 void를 타입변수로 선언하는 것을 추천하지 않습니다.

Null and Undefined

let u: undefined = undefined;
let n: null = null;

Never

  • 절대 발생할 수 없는 타입을 나타냅니다.
  • 예를들어, never은 함수 표현식이나 화살표 함수 표현식에서 항상 오류를 발생시키거나 절대 반환하지 않는 반환 타입으로 쓰입니다.
  • 변수 또한 타입 가드에 의해 아무 타입도 얻지 못하게 좁혀지면 never타입을 얻게 될 수 있습니다.
  • 모든 타입에 할당 가능한 하위 타입 입니다.
// never를 반환하는 함수는 함수의 마지막에 도달할 수 없다.
function error(message: string): never {
    throw new Error(message);
}

// 반환 타입이 never로 추론된다.
function fail() {
    return error("Something failed");
}

// never를 반환하는 함수는 함수의 마지막에 도달할 수 없다.
function infiniteLoop(): never {
    while (true) {
    }
}

객체(Object)

  • 원시 타입이 아닌 타입을 나타냅니다.
  • number, string, boolean, bigint, symbol, null, undefined가 아닌 나머지를 의미합니다
declare function create(o: object | null): void;

create({ prop: 0 }); // 성공
create(null); // 성공

create(42); // 오류
create("string"); // 오류
create(false); // 오류
create(undefined); // 오류

타입 단언(Type assertions)

  • 타입 스크립트는 개발자가 필요한 어떤 특정 검사를 수행했다고 인지합니다.
  1. angle-bracket
const someValue: any = "this is a string";

const strLength: number = (<string>someValue).length;
  1. as (typeScript 와JSX를 함께 사용할 때는 as 스타일의 단언만 허용됩니다)
const someValue: any = "this is a string";

const strLength: number = (someValue as string).length;

0개의 댓글