티스토리 뷰
처음에는 모든걸 괄호 안에 적어줬는데 자꾸 빨간줄을 띄우길래 괄호 안에 있던 걸 변수로 분리해줬다. 그래도 menu에서 빨간 줄을 띄웠다.
const getRandomMenu = () => {
const randomNum = Math.floor(Math.random() * foodArr.length);
const menu =
foodArr[randomNum] !== undefined
? foodArr[randomNum]
: '분류를 선택해주세요';
// 여기서 menu에 자꾸 빨간 줄을 띄웠다.
setTodayMenu(menu);
};
나는 아무것도 하지않았으나 타입스크립트가 추론하길 이 자리에 null과 undefined이 들어갈 수 없어서 불만을 띄운 것 같았다. 그래서 todayMenu state에 타입을 정해주기로 했다.
Argument of type 'string | null | undefined' is not assignable to parameter of type 'SetStateAction<string>'.
Type 'undefined' is not assignable to type 'SetStateAction<string>'.
처음에 useState에도 콜론(:)을 이용해서 타입을 지정해 줄 수 있다고 생각했다. 그런데 자꾸 에러가 뜨는 것이다....🥲
// 틀림
type Menu = string | undefined | null;
...
const [todayMenu, setTodayMenu] = useState : Menu('뭘까요?');
사실 useState에는 <T>로 타입을 정해주는 것이었다.🥺
// 맞음
type Menu = string | undefined | null;
...
const [todayMenu, setTodayMenu] = useState<Menu>('뭘까요?');
타입스크립트는 맨날 화내는데 대체 왜 화났는지 모르겠어서 눈물이 난다...🥲 타선생님 제발 화 좀 그만내세요.....😇
728x90
'TIL' 카테고리의 다른 글
TIL 221115 lighthouse(라이트하우스) 써보기 (0) | 2022.11.15 |
---|---|
TIL 221108 타입스크립트에서 props 넘기기 + 함수에 타입 지정해주기 (0) | 2022.11.08 |
TIL 221101 타입스크립트는 불만이 많아~ (0) | 2022.11.01 |
TIL 221012 옛날에 만든 투두리스트 프로젝트 뜯어보기 (1) | 2022.10.12 |
TIL 220928 input 체크박스를 클릭하면 onClick이벤트가 2번 발생하는 이유 + etc. (0) | 2022.09.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- git
- 제로초
- js
- 스파르타코딩클럽
- 깃
- Til
- React
- map
- 회고
- 파이썬
- Python
- vscode
- scss
- 코딩앙마
- vue
- 제이쿼리
- 김버그
- 타입스크립트
- 자바스크립트
- 코드잇
- CSS
- 비주얼스튜디오코드
- 드림코딩
- html
- 구름에듀
- javascript
- 리액트
- Typescript
- TS
- 저스트코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함