'string | null' 형식은 'string' 형식에 할당할 수 없습니다. 'null' 형식은 'string' 형식에 할당할 수 없습니다.ts(2322)
2023. 8. 21. 18:17ㆍReact
개인 프로젝트를 진행하는 중 만난 에러에 대해 기록을 남겨놓는다.
// Userstate.ts 파일
import { atom } from "recoil";
...
const userInfo = atom({
key: 'userInfo',
default : [{
uid: "",
email: "",
displayName: ""
}]
})
...
// Login.tsx 파일
const setUserInfo = useSetRecoilState(userInfo); // 사용자 정보
...
try{
const auth = getAuth();
const { user } = await signInWithEmailAndPasswordService(auth, userId, userPw);
setUserInfo([
{
uid : user.uid,
email : user.email,
displayName : user.displayName,
}
])
...
} catch(error) {
...
}
}
Login.tsx에서 로그인한 유저의 email과 displayName을 저장하는데 오류가 발생했다.
'string | null' 형식은 'string' 형식에 할당할 수 없습니다.
'null' 형식은 'string' 형식에 할당할 수 없습니다.ts(2322)
그래서 처음엔 atom의 default 값을 변경했었다.
// UserState.ts
const userInfo = atom({
key: 'userInfo',
default : [{
uid: "",
email: "" || null,
displayName: "" || null
}]
})
고쳐지지 않았구요~
그래서 setUserInfo 부분을 수정했다.
// Login.tsx
setUserInfo([
{
uid : user.uid,
email : user.email !== null ? user.email : "",
displayName : user.displayName !== null ? user.displayName : "",
}
])
이렇게 고치니 typescript 관련 에러가 사라졌다. 일단은 로그인에 관련된 내용을 구현 중이라 어디서 사이드 이펙트가 터질지는 모르지만 일단 고친거에 의의를 둠................
'React' 카테고리의 다른 글
Jest를 사용해보자! - 3편 (2) | 2023.10.30 |
---|---|
Jest를 사용해보자! - 2편 (1) | 2023.10.27 |
Jest를 사용해보자! - 1편 (0) | 2023.10.26 |
웹 캘린더 포트폴리오 만들면서 (1) | 2023.10.11 |
[React] 1. React Hook (0) | 2023.03.27 |