ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TypeScript] type
    TypeScript 2023. 12. 20. 17:57

    타입을 지정할 때

    : 타입 ( string, number,...)

     

    readonly

    type Age = number;
    type User = {
    	readonly name : string;
        age?: Age
    }
    const addUser = (name:string) : User => ({name})
    const kitty = addUser('kitty')
    kitty.age = 21

    누군가 이름을 바꾸려고 하면 

    kitty.name = 'coco' // => error

    오류가 남

    =>readonly 불변성을 가지게 됨

    => push 불가능

    => map이나 filter는 가능 => 원본을 수정하지 않고 새로운 배열을 만드는것이기 때문

     

    any 

    const a  = [1,2,3,4]
    const b = true
    
    a + b // => error
    const a : any[] = [1,2,3,4]
    const b : any = true
    
    a + b // => 에러가 나지 않음

    => 타입스크립트를 빠져나오는 속성

    => 모든 타입이 허용가능( 자바스크립트로 변환 되는것임)

     

    tuple

    const user: [number, string, boolean] = [21, 'kitty', true]
    user[0] = 'coco' // => error

    0번째 인덱스에는 number로 타입이 정의되어있으므로 에러가 뜸!

    readonly + tuple

    const user: readonly[number, string, boolean] = [21, 'kitty', true]
    user[0] = 30 // => error

    0번째 인덱스가 number가 맞지만 readonly속성으로 불변성을 갖게되어 수정이 불가능함

     

    call signatures

    type Add = (a:number,b:number) => number;
    const add:Add = (a,b)=> a+b

    타입을 지정해주는것 = call signatures이라고 함

    => 미리 타입을 지정해주고 지정된 타입을 가져다 써서 코드가 훨씬 깔끔해짐

     

Designed by Tistory.