마지막 수업 중 TypeScript로 전환하는 과정에서 LocalStrategy를 수정하던 중 발생한 오류입니다.
637
작성한 질문수 1
안녕하세요.
수업 너무 잘 듣고 있던 학생입니다. 다름이 아닌 수업에서는 수정하지 않았지만 다음과 같은 오류가 발생하였고, 오류내용은 다음과 같습니다.-> 해당 코드는 controllers > auth.ts파일 중 login메서드의 구현부입니다.
$ npx tsc --noEmit
controller/auth.ts:27:37 - error TS7006: Parameter 'authError' implicitly has an 'any' type.
27 passport.authenticate('local', (authError, user, info) => {
~~~~~~~~~
controller/auth.ts:27:48 - error TS7006: Parameter 'user' implicitly has an 'any' type.
27 passport.authenticate('local', (authError, user, info) => {
~~~~
controller/auth.ts:27:54 - error TS7006: Parameter 'info' implicitly has an 'any' type.
27 passport.authenticate('local', (authError, user, info) => {
~~~~
Found 3 errors in the same file, starting at: controller/auth.ts:27그래서 해당 파라미터를 any로 타입을 줘서 해결하였지만, any를 가급적 사용하고 싶지 않아 다른 방법을 찾고 있는데 괜찮은 방법이 있을까요?
시도했던 방법은 다음과 같습니다.
콜백함수를 별도의 함수로 빼내어 타입을 지정해준 방법 (passport모듈의 AuthenticateCallback타입)
-> 하지만 message에서 다음과 같은 오류를 받음.
controller/auth.ts:33:55 - error TS2339: Property 'message' does not exist on type 'string | object | (string | undefined)[]'.
Property 'message' does not exist on type 'string'.
33 return res.redirect(`/?loginError=${info?.message}`);-> message as string으로 해결해보려 하였지만 같은 오류메세지를 반복.
답변 3
1
다시 확인 결과 이 부분 @types/passport@1.0.12에서 타입이 조금 수정되었네요. 다음과 같이 하시면 됩니다.
passport.authenticate('local', (authError: any, user: Express.User, info: { message: string }) => {
0
추후 참고가 될까 싶어서 남깁니다. 동일 에러 발생했습니다. node_modules 삭제하고 package.json 내 @types/passport version을 github 프로젝트랑 동일하게 맞춘 다음("@types/passport": "^1.0.9") 터미널에 npm i 실행 및 VS Code 종료 후 재실행 하니까 해결됐습니다.
0
어, 저게 사실 이전 강좌에서 해결이 되었어야 하거든요. @types/passport 설치하면 자동으로 해결됩니다.
0
AuthenticateCallback타입을 passport모듈에서 가져온 터라 @types/passport는 이미 설치한 상태입니다.
아니면 번거롭더라도 types폴더의 index.d.ts파일에 타입을 만들어서 처리하는 것이 괜찮을까요?
0
아뇨. 다시 한 번 말씀드리지만... 저 문제는 애초에 발생해서는 안 됩니다.
제 깃헙에서 ch17/17.4/nodebird 한 번 클론받아서 실행해보세요. 뭔가가 다를겁니다.
깃헙 질문
0
79
2
강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.
0
74
1
aws - lightsail 이용 관련
0
56
1
4강 http 서버 만들때 ESM방식으로 해도 될까요?
0
78
2
모듈 사용 시 단점이 있나요?
0
78
1
node.js 버전 및 typescript 적용 문의
0
91
2
12.7. 방장기능(강퇴) 질문드립니다.
0
78
2
12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요
0
67
1
12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.
0
73
2
12.7.1스스로 해보기 질문되나요
0
89
3
시퀄라이즈 실습하기 질문드립니다.
0
186
9
<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.
0
94
2
크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.
0
109
2
구매 결제관련 질문입니다 !
0
120
1
다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제
0
130
2
node 설치 방법이 전혀다르게 바뀐것 같습니다.
0
146
2
12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류
0
119
2
무료/프리미엄 동시 소유 시 질문
0
113
1
비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?
0
133
2
10강 cors에러 localhost:4000으로 접속했을때 에러
1
155
2
webstorm 해결할 수 없는 변수 문제
0
152
2
혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?
0
145
2
LightSail 실행 중 오류 질문드립니다!
0
198
2
RedisStore 사용법 질문
0
129
2





