작성
·
165
0
제로초님 안녕하세요.
영상에서 해결해주신 대로 타입문제를 해결하고 있는데요. 그런데 tsconfig.json을 아래처럼
{
"compilerOptions": {
"strict": true,
"lib": ["es2015", "es2016", "es2017", "es2018", "es2019", "es2020"],
"moduleResolution": "node",
"typeRoots": ["./types"]
},
"files": ["./index.ts"]
}
files에 index.ts를 넣으면 같은 에러가 발생합니다. 그리고 저 부분을 제외하면
router.get('/', isLoggedIn, (req , res) => {
const user = req.user!.toJSON() as User;
delete user.password;
return res.json(user);
} )
위의 코드에서 req.user!.tsJSON()에서는 문제가 안 생기는데, 대신에 delete 다음에 오는 user.password 부분에 "The operand of a 'delete' operator must be optional." 이라는 에러가 뜹니다. 저 user.password의 type definition을 보면 public User.password: string 이라고 나오는데, 모델을 정의하는 부분에서는 password 뒤에 !를 붙였고, User.init 함수 안에서도 alowNull을 false로 설정해서 optional이 올 필요가 없어보이는데도 그렇네요. 강의 중에는 그런 문제가 안 나오는 것 같던데, 혹시 타입스크립트 버전 차이 때문에 그런 것일까요? 현재 4.2.4 버전 사용 중입니다.