express-jwt и express-graphql: ошибка TS2339: свойство 'user' не существует для типа 'Request' - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь заставить express-jwt и graphql работать вместе в машинописи.

import * as express from 'express'
import * as expressGraphql from 'express-graphql'
import * as expressJwt from 'express-jwt'

import schema from './api/schemas'
import rootValue from './api/resolvers'

const app = express()

app.use(
  expressJwt({
    credentialsRequired: false,
    secret: process.env.JWT_SECRET
  })
)

app.use(
  '/',
  expressGraphql((req, res, graphQLParams) => ({
    schema,
    rootValue,
    context: {
      user: req.user
    }
  }))
)

Я импортировал относительные наборы @types/express, @types/express-graphql и @types/express-jwt.

Произошла ошибка машинописного текста:

error TS2339: Property 'user' does not exist on type 'Request'

user добавлено в объект запроса express-jwt.

Как я могу это исправить?

1 Ответ

0 голосов
/ 02 марта 2019

расширяет Экспресс Request с одним свойством

interface AuthRequest extends express.Request {
  user?: string
}

app.use(
  '/',
  expressGraphql((req: AuthRequest, res, graphQLParams) => ({
    schema,
    rootValue,
    context: {
      user: req.user
    }
  }))
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...