typescript - data type, optional parameter

wj·2023년 6월 26일
0
  • data type
    string, number, boolean
  • optional parameter
    ?(물음표)를 붙여주면 파라미터 유무 확인함
const player : {
    name: string,
    age?:number
} = {
    name: "nico"
}

//optional parameter의 경우 undefined일 상태를 감안하여 작성
if(player.age && player.age < 10) {
}
  • Alias(별칭) 타입
type Player = {
    name: string,
    age?:number
}

const player : Player = {
    name: "nico"
}
  • 함수 적용 방법
type Player = {
    name: string,
    age?:number
}

function playerMaker1(name:string) : Player {
    return {
        name
    }
}

const playerMaker2 = (name:string) : Player => ({name})
const nico = playerMaker1("nico")
nico.age = 12
  • readonly
    readonly가 적용된 property는 수정이 불가능함
type Player = {
    readonly name: string,
    age?:number
}
const playerMaker2 = (name:string) : Player => ({name})
const nico = playerMaker1("nico")
nico.name = "ddd" <- ❌Error
  • tuple
    작성된 데이터의 타입과 순서에 맞게 입력하여 대입
const player: [string, number, boolean] = ["1", 3, true]
  • undefined/null
    optional parameter는 undefined의 성격을 가짐

  • any 사용 지양(typescript 규칙에서 벗어남)

  • 타입스크립트에서 중요한 것은 type checker와 소통하는 것

Typescript에만 있는 타입들

  • unknown
    작업 전에 해당 변수의 타입을 먼저 확인해야함
    변수의 타입을 미리 알지 못 할 때 사용
    let a: unknown;
    any타입과 비슷하지만 any보다 안전함. type checker의 확인이 가능함

  • void
    '비어있는 것'
    void는 값을 반환하지 않는 함수의 반환 값을 나타냄.
    함수에 return 문이 없거나 해당 return 문에서 명시적 값을 반환하지 않을 때 항상 유추되는 타입.
    아무것도 return하지 않는 함수를 대상으로 사용
    void를 따로 지정해줄 필요 없음

  • never
    함수가 절대 return하지 않을 때 발생하는 type
    함수에서 exception이 발생할 때
    타입이 두가지일 수도 있는 상황에서 발생

function hello():never {
	console.log("x") <- ❌Error
}

//return하지 않고 에러를 발생시키는 함수
function hello():never {
	throw new Error("xxx") ⭕
}

//type을 두 개 지정해줄 경우
function hello(name:string|number) {
	if(typeof name === string) {
     @@@
    } else if (typeof name === number) {
    @@@
    } else {
    name <- name: never
    }
}
profile
tistory로 옮겼습니다

0개의 댓글