export interface ItemEditProps {
items: Items;
makeEditForm: (categoryName: ItemCategory) => void;
deleteItem: (item: Item) => void;
}
자식 컴포넌트로 전달할 props들을 interface로 정의한건데
내 의도는 버튼 A에 makeEditForm, 버튼 B에 deleteItem을 전달할거임
근데 지금같은 상황에서는 버튼 A와 버튼 B에다가 makeEditForm deleteItem 두개를 모두 전달해야 에러가 사라짐;;
혹시 props 두개를 or로 묶어서 둘중 하나만 전달해도 에러 안뜨게 하는법 있음?
버튼A와 버튼B를 다른 컴포넌트로 만들어서 각각 다른 props을 정의해 주는게 제일 좋음. 현실은 귀찮으니까 그냥 각 부분을 optional하게 만들어도 됨. nullable하게 만들어서 null값 던져주던지
버튼 두개를 따로 나누는거였으면 이런고민도 안했지ㅠㅠㅠ 둘다 optional로 만들면 nullable하게 만들어야되는데 최선이냐
아씨 nullable 하게 했더니 전달한 함수사용하는 자식컴포넌트에서 possiblly null하다고 에러뿜네;;; 일단 필요도없는 props 전달함 ㅠㅠ
물음표로 안 되나? - dc App
둘다 물음표로해도 에러나온당..... undefined할수없담서
item: A|b;
newProps : makeEditForm | deleteItem; 이렇게 하면 되는거냐
Omit이런거 원한건가?
들어본거같은데;; 검색해볼게
근데 내가 이해능력이 딸려서 뭘 원하는지는 모르겠지만, 버튼 컴포넌트가 2개고 서로 다른 props를 받으면 각각의 버튼에 다른 props interface 를 정의하는게 좋다구 생각해
버튼마다 사용되는 타입 지정해주고 뒤에 제너릭으로 이벤트 핸들러 prop을 받는다던가..
버튼컴포넌트는 하나얌. 하나의 컴포넌트에서 union type을 인자로 받아서 각각의 style이 달라짐 하나는 add버튼이고 하나는 delete 버튼인데 이게 컴포넌트가 중복되다보니까 interface를 각각 받을수가없음
자식컴포넌트에서 props를 제네릭으로 받게하면 되려나?
모르겟다 일단패스 ;;;