[Typescript] Control Union Type


type AB=Arrayでは、ArrayにおけるElementのtypeをA,Bで処理するために整理されたレコードである.
type A = {
 id:string;
 a:number;
};

type B = {
 id:string;
 b:number;
};

type AB = Array<A | B> //Union Type
  • ABのtypeはArrayにA型またはB型が存在することを示す
  • ・𐥍・❗ABのtypeでは、共通の部分・𐥋・のみが→A.bやB.aなどのtype問題を推論できるから!AB型を持つ状態のタイプを区別するために?
    const divideStateByType = (state:AB) => {
    
     if("a" in state){
     console.log("state type은 a field를 가진 A type");
     }else if("b" in state){
     console.log("state type은 b field를 가진 B type");
     }
    
    };
    const divideStateByType = (state:AB) => {
     const aState = state as A;
     const bState = state as B;
    
     console.log("aState는 type이 A인 state");
     console.log("bState type이 B인 state");
    
    };
    const isAType = (state: AB): state is A  => {
     return (state as A).deleted !== undefined;
    };
    
    if(isAtype(state)){
     console.log("type이 A인 state");
    }else {
     console.log("type이 B인 state");
    }