TS_ Unknown, Any, Never, Void,

sunjin·2023년 12월 8일

Typescript

목록 보기
1/5

- unknown / any 타입

두 타입 모두 타입 지정하기 애매할때 사용한다.

- any

let anyVar : any = 10;
anyVar = "hello";

let num: number = 10;
num = anyVar 

특정 변수의 타입을 우리가 확실히 모를때, 어떤 타입이든 넣을수 있다.
타입 검사를 안하는것과 같기 때문에 런타임 에러가 발생할 수 있다 .
any 타입은 최대한 사용하지 않는게 좋다.

function anyExam() {
  let unknowVar : unknown;
  let anyVar: any;
  let undefined: undefined;
  
  anyVar = unknownVar
  
  undefined = anyVar

치트키와 같다.
업 다운 캐스팅이 모두 된다.


- unknow

let unknownVar : unknown;

unknownVar = "";
unknownVar = 1;
unknownVar = () => {};

//num = unknownVar (x) 불가능 

연산 불가 , 메서드 사용 불가하다

function unknowExam() {
  let a: unknown = 1;
  let b: unknown = "hello";
  let c: unknown = true;
  let d: unknown = null;
  let e: unknown = undefined;

  let unknowVar: unknown;

  // let num : number = unknowVar; (x)
  // let str : string = unknowVar; (x)
  // let bool : boolrean = unknowVar (x)
}

업캐스팅만 가능하다.


- never / void 타입

never는 존재하지 않는 , 불가능한 타입이다.
반면에 void는 아무것도 없는것을 의미한다.

- never

function func3(): never {
  while (true) {}
}

function func4(): never {
  throw new Error();
}

// let a : never; (x)
function neverExam() {
  function neverFunc(): never {
    while (true) {}
  }

  let num: number = neverFunc();
  let str: string = neverFunc();
  let bool: boolean = neverFunc();

  // let never1 : never = 10;
  // let never1 : never = "string";
  // let never1 : never = true;
}

null 도 undefined도 안된다

그 어떤값도 저장할 수가 없음


- void

function func1(): string {
  return "hello";
}

function func2(): void {
  console.log("hello");
}

let a: void;
a = undefined;
function voidExam() {
  function voidFunc(): void {
    console.log("hi");
  }

  let voiVar: void = undefined;
}
profile
🍀

0개의 댓글