타입스크립트 타입

공룡개발자·2022년 7월 27일
0
post-thumbnail
post-custom-banner

implicit type

// Alias Type
type Info = {
    name: string,
    age?: number,
}

const me : Info = {
    name: 'donghyun',
}

// Argument & Return Type
const info = (name: string, age?: number) : Info => ({name, age});

console.log(info('dong'));

readonly

원시타입이 아닌 객체에 불변성을 부여할 수 있다?

type Color = {
    readonly color: string,
    code: number,
}
// fruits에 조작을 가할 수 없고, colors의 color 역시 조작할 수 없다.
const fruits : readonly string[] = ['apple', 'banana', 'lemon'];
const colors : Color = {
    color: 'red',
    code: 123
}

Tuple

const fruits_2 : [string, number, boolean] = ['apple', 20000, true];
const fruits_1 : readonly [string, number, boolean] = ['apple', 20000, true];

any

타입스크립트로부터 벗어나고 싶다?! 그럼 any 타입을 명시하라!

unknown / void / never

// unknown
let count: unknown;
let name: unknown;

if(typeof count === 'number') {
  let total = count + 1;
}
if(typeof count === 'string') {
  let upperCase = name.toUpperCase();
}

// void: 아무것도 return하지 않는 함수, 따로 지정하지는 않음
function apple(): void {
  console.log('yummy');
}

// never
function error():never{
  throw new Error('no!!');
}

function error(name: string|number){
  if(typeof name === 'string'){
    // string type
  } else if (typeof name === 'number') {
    // number type
  } else {
    // never type
  }
profile
공룡의 발자취
post-custom-banner

0개의 댓글