TS

[TypeScript] 타입이란?

코딩하는둥이 2023. 2. 22. 17:47

readonly 

 : 속성을 타입에 추가할 수 있

 : 항상 정해진 갯수의 요소을 가져야하는 array을 지정가능하다

const player:[string, number, boolean] = ["nico",1, true]
 

any

 : 타임스크립트부터 빠져나오고 싶을 떄 사용하는 타입

 : 타입스크립트의 보호장치들로부터 빠져나오고 싶을 때

 : 아무타입 될 수 있음

 : 보호장치를 벗어나기 때문에 권장하지는 않음

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

unknown

:  응답(변수)의 타입을 모를 때 사용

: 타입스크립트로부터 일종의 보호를 받음

let abc:unknown;
// abc가 unknown의 상태이기 때문에 에러 뜸
let bcd = abc + 1
// abc가 number인지 확인해야 함
// 이 범위 안에서는 abx의 타입이 number인지 확인했기 때문에 실행됨
if(typeof abc == 'number'){
    let bcd = abc + 1;
}

if (typeof abc === "string"){
    let bcd = abc.toUpperCase();

}

 

void

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

: 타임 스크립트가 아무것도  return하지 않는 것을 자동으로 인

 

function hello(){ // hello 마우스를 갖다 되면 void가 나옴
    console.log('x')
}


const abc = hello();
abc.toUpperCase(); // 에러가 뜨는 이유는 void 타입엔 toUpperCase 없음
 

never

: 절대 return 하지 않을 때 발생

// 에러가 뜸

function hi():never{
    return "hi";
    }
// 오류를 발생시키면 에러 안뜸
function hi():never {
    throw new Error;
}


function bye(name:string|number){
    if(typeof name === "string"){
    name
    }else if(typeof name ==="number"){
        name
    }else{ //else 마우스를 갖다되면 never, 타입의 값이 올바르게 들어오면 작동하지 않음
        name
    }
}