-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
Description
문제 상황

타입스크립트로 express를 이용한 컨트롤러(라우팅 핸들러)를 작성할 때는, req, res, next 에 타입을 지정해줘야 하고, 이를 express 라이브러리가 제공하는 Request, Response, NextFunction 인터페이스를 사용할 수 있었다.
그러나 Request 에는 session 프로퍼티가 없어, req.session 을 사용하려고 하면 해당 프로퍼티가 없다고 찡찡댄다.
이는 'express-session', @types/express-session 을 설치하면 자동으로 express의 Request 인터페이스에 session 프로퍼티를 만들어준다.
만약 내가 req.session 내부에 user, loggedIn이라는 새로운 프로퍼티를 만들고 데이터를 넣고 싶다면?
당연히 안된다. user, loggedIn는 내가 만든 변수니, Request.session에 타입이 없을 것이기 때문이다.
어떻게 할 것인가? 직접 라이브러리 타입 파일에 들어가 user, loggedIn를 추가할 것인가?
문제 해결
우리가 원하는 건 Request 인터페이스를 유지하면서 + user, loggedIn 타입만 추가하는 것이니,
상속 기능을 이용해 만들 수 있었다.
이렇게 하면 라이브러리 파일도 안 건드리면서, 새로운 프로퍼티를 추가한 인터페이스를 사용할 수 있다.
Reactions are currently unavailable

