postPosts의 req.user.id 컴파일 에러?
362
작성한 질문수 50
postPosts 컨트롤러까지 요청이 들어왔다면 Request 객체에 user 프로퍼티가 있는 것은 확실한데
타입스크립트 컴파일러가 인식을 못하는 것 같아요.
앱 실행이 안되는데 어떻게 해결해야 할까요...
답변 2
0
안녕하세요!
문제점은 잘 파악하신 것 같습니다.
그렇게 하셔도 문제는 없습니다.
다만 "postPosts 컨트롤러까지 요청이 들어왔다면 Request 객체에 user 프로퍼티가 있는 것은 확실한데
타입스크립트 컴파일러가 인식을 못하는 것 같아요."는 매우 잘못된 표현입니다. Typescript는 빌드타임 툴이기 때문에 런타임 값들을 당연히 인식 못합니다. 이 부분이 이해가 안된다면 제 JS/TS 강의 참고 부탁드립니다!
감사합니다!
0
아... user는 동적으로 추가된 프로퍼티니까 Request 타입 정의에 user 프로퍼티가 없는 게 맞고.. 타입스크립트 컴파일러가 정적 타입 검사 할 때 인식 못하는 거 아닌가요...?
컴파일 언어란 소리는 아니고 타입 컴파일러가 그냥 사전에 타입만 체크해주는 거로 알고 있었는데 이것도 틀린건가요?
0
동적으로 추가된 프로퍼티라 Request 타입에 user가 없는게 아니라 실제로 Request 타입에는 user가 없습니다. 그렇기 때문에 Request 타입에 user 타입을 추가하고 싶다면 직접 넣어줘야합니다. (진행하신 방법이 한가지 솔루션이 될 수 있습니다)
TS는 실행과 관계가 없습니다. 빌드타임 타입 체크만 해줍니다.
0

types라는 폴더를 따로 만들고 그 안에 Request interface를 확장한 interface를 다시 만들었습니다.
// request.interface.ts
import {Request} from "@nestjs/common";
import {UsersModel} from "../users/entities/users.entity";
export interface RequestWithUserAndToken extends Request {
user: UsersModel,
token: string,
tokenType: string,
}// posts.controller.ts
@Post()
@UseGuards(AccessTokenGuard)
postPosts(
@Request() req: RequestWithUserAndToken,
@Body('title') title: string,
@Body('content') content: string,
) {
const authorId = req.user.id;
return this.postsService.createPost(authorId, title, content);
}선언한 interface를 Request 타입으로 사용해서 컴파일러에게 user 프로퍼티가 있다는 것을 인식하게 했는데
혹시 좋지 못한 방법일까요..?
cascade 질문
0
44
1
@types/bcrypt 설치과정이 누락된것같습니다.
0
53
1
process.env port key 에러
0
51
1
추상화
0
52
1
[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상
0
105
2
where 키워드가 들어가는 메서드와 아닌 메서드
0
57
1
BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?
0
74
1
app.controller app.service 는 지워도되나요?
0
70
1
@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이
0
81
1
포트 3000에서 listen하는 곳까지 넘어가지 않습니다.
0
69
1
PickType 사용 시 `as const`를 꼭 사용해야 하나요?
0
105
2
socket connect 오류
0
101
2
강의를 들으면서 궁금한 점
0
100
2
DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?
0
64
2
커리큘럼 질문
0
101
2
put 요청은 언제
0
92
3
typeorm VS prisma
0
355
2
142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.
0
79
2
User 데코레이터 버그 수정 전달드립니다.
0
70
1
git 주소 부탁드립니다.
0
115
2
nest g resource 명령어 에러
0
99
2
로그인 엔드포인트 관련 질문
0
86
2
yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우
0
150
3
"흔히 사용되는 메서드" 강의 관련 질문입니다~
0
95
2





