ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Typescript - Type Alias
    Front-end/Typesrcipt 2023. 4. 12. 15:50
    728x90
    반응형

    Type Alias

    type alias 타입을 변수로 만들어서 사용 하는것이다.

    type alias 를 변수로 선언할때 대문자로 사용한다.

    type Info = string | number;	// type을 변수로 사용한다. (통상 대문자로 시작)
    
    let myAge: Info = 27;	// number 타입 허용
    let myName: Info = 'zelord';	// string 타입 허용

     

    배열 및 오브젝트도 type alias 를 사용할 수 있다.

    type Member = {	// Member로 타입변수를 선언
        name: string,
        age: number
    }
    
    let person: Member = {	// Member 타입변수를 불러와서 타입선언
        name: 'zelord',
        age: 27
    }
    
    
    type Lotto = number[];	//	Lotto 타입변수를 선언
    let lottoNum: Lotto = [1, 5, 23, 42, 31, 17, 25];	// Lotto 타입변수를 불러와서 타입선언

     

    오브젝트에서 readonly 키워드를 사용하여 수정할 수 없도록 설정할 수 있다.

    (실제로 값은 변경이 되나 에디터에서 에러라고 나타난다.)

    type Member = {
        readonly name: string,	// readonly 키워드를 선언한다.
        age: number
    }
    
    let person: Member = {
        name: 'zelord',
        age: 27
    }
    
    person.age = 1;	// readonly 키워드가 없어서 변경가능
    person.name = 'lee';	// readonly 키워드로 인해 변경불가

     

     

    반응형

     

     

    Type alias Union 또는 &

    타입을 합치기 위해선 union type을 사용하거나 &(extend) 를 사용하여 타입을 합칠 수 있다.

    연산자는 오브젝트일때 사용 하기 편하다.

    type Name = string;
    type Age = number;
    type Dog = Name | Age;	// union type으로 타입 변수 합치기
    
    type PetName = { name: string };
    type PetAge = { age: string };
    type Pet = PetName & PetAge;	// & 를 사용하여 타입 변수 합치기(extend)
    
    let myDog: Pet = {
        name: 'zelordDog',
        age: 99
    }

     

    type 변수재정의불가능하다.

    type Name = number;
    type Name = string;	// 먼저 위에 type을 선언했기 때문에 재정의 불가능
    728x90
    반응형

    'Front-end > Typesrcipt' 카테고리의 다른 글

    Typescript - Method Alias  (0) 2023.04.13
    Typescript - Literal Types  (0) 2023.04.13
    Typescript - Narrowing & Assertion  (0) 2023.04.12
    Typescript - function parameter, return  (0) 2023.04.12
    Tyepscript - Union, any, unknown  (0) 2023.04.12
Designed by Tistory.