提问者:小点点

参数“req”隐式地具有“any”类型-类型脚本


我是typescript的新手,我正在尝试学习如何使用Json Web令牌来验证typescript API,但是每当我启动npm时都会遇到这个错误。

参数“req”隐式地具有“any”类型。

19 app.get('/api', (req, res) => {
                    ~~~

参数“res"隐式地具有”any“类型。

19 app.get('/api', (req, res) => {

这是我的代码,它只是一个简单的JWT认证

app.get('/api', (req, res) => {
  res.json({
    message: 'Welcome to the API'
  });
});

app.post('/api/posts', verifyToken, (req, res) => {  
  jwt.verify(req.token, 'secretkey', (err, authData) => {
    if(err) {
      res.sendStatus(403);
    } else {
      res.json({
        message: 'Post created...',
        authData
      });
    }
  });
});

app.post('/api/login', (req, res) => {
  // Mock user
  const user = {
    id: 1, 
    username: 'brad',
    email: 'brad@gmail.com'
  }

  jwt.sign({user}, 'secretkey', (err, token) => {
    res.json({
      token
    });
  });
});


function verifyToken(req, res, next) {
  const bearerHeader = req.headers['authorization'];
  if(typeof bearerHeader !== 'undefined') {
    const bearer = bearerHeader.split(' ');
    const bearerToken = bearer[1];
    req.token = bearerToken;
    next();
  } else {
    res.sendStatus(403);
  }
}

如何修复此错误?


共1个答案

匿名用户

如果使用Express:

import { Request, Response } from 'express'
app.get('/api', (req: Request, res: Response) => {..}

您可以笼统地将代码写成:(不建议)

app.get('/api', (req: any, res: any) => {..}