최상단 컴포넌트 - 상단 컴포넌트 - 하위 컴포넌트 - 최하위 컴포넌트 이렇게 만들어진 상태에서 하위 컴포넌트와 최하위 컴포넌트간 데이터 공유가 필요했다. 이제부터 편의상 하위 컴포넌트와 최하위 컴포넌트를 상위 컴포넌트와 하위 컴포넌트라 칭함. 컴포넌트간에 데이터 공유 방법은 store나 props, emit을 써도 되지만 오로지 이 둘 사이에서만 데이터를 공유 하면 됐기에 고민하던 찰나 provide, inject가 생각났다. props, emit은 단방향이란 특성 때문에 상위 컴포넌트에서 하위 컴포넌트로 혹은 이와 반대로 보내주고 끝이다. 즉, 하위 컴포넌트에서 값을 변경하면 상위 컴포넌트에선 감지할 수 없다. 이 특성을 고려하지 않은채 만들다가 상위 컴포넌트에서 변경값을 감지 못하는 바람에 머리 싸..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/tRHIl/btrVjQa0Ind/jqBkNCCj6EV4KxrJ6IFTn1/img.png)
Any / Array / Boolean / Enum / Never / Null·Undefined / Number / Object / String / Tuple / Void 9. String 연속된 문자들일 때 씀. 즉, 문자열임. const str:string = 'STRING'; 10. Tuple 배열의 길이와 형식이 고정된 타입일 때 씀. let tupleArr:[number, string, string] = [0, 'name', 'adress'] 지정된 형식이 아닐 경우엔 오류 발생함. 11. Void java에서 많이 본 기억이 있음. 함수에서 사용할 땐 반환값이 없을 때 씀. 변수에서는 undefined나 null만 할당함. function voidFunc(input: string): void ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bLWlOu/btrVjOjswow/dMXedIdKTnpXiA375NhgkK/img.png)
Any / Array / Boolean / Enum / Never / Null·Undefined / Number / Object / String / Tuple / Void 5. Never 원하는 값이 없을 때 이 없는 값을 뜻함. 뭔가 어려운 것같은데, 내가 생각했던 값이 아닌 값이 들어 왔을 때를 위해 never 타입을 씀. 예를 들자면 error 같은 것. 함수 끝까지 도달하지 않거나 오류를 출력하기 때문에 함수의 리턴 타입으로 많이 사용되는 것으로 보임. enum RPS {Rock, Paper, Scissors}; const pick = Math.floor(Math.random()*(3)); function passNeverType(str: never): never { throw new Error(..