【问题标题】:Error TS7006: Parameter 'req' implicitly has an 'any' type错误 TS7006:参数“req”隐含地具有“任何”类型
【发布时间】:2021-09-20 06:26:45
【问题描述】:

我已在 tsconfig.json 中将“noImplicitAny”设置为 true。我收到此错误,Error TS7006: Parameter 'req' implicitly has an 'any' type.

解决此问题的一种方法是明确提及任何 req 参数。我在 stackoverflow 中查找了其他解决方案,但其中大多数建议将“严格”标记为假或将“noImplicitAny”标记为假。但我想实现“noImplicitAny”。

是否有任何其他方法可以抑制此错误。 谢谢

【问题讨论】:

    标签: node.js typescript request nestjs tsconfig


    【解决方案1】:

    "noImplicitAny" 意味着你不能拥有任何默认为 any 的东西。这意味着打字稿无法推断类型。如果你想使用“noImplicitAny”,你需要这些类型。

    由于 Nest 是基于 ExpressJS 构建的,您可以使用 Express 自带的 Request 类型。

    import { Request } from express
    
      findAll(@Req() request: Request): string {
        return 'This action returns all cats';
      }
    

    抑制错误的唯一其他方法是在其上打一个“any”,但这违背了使用 typescript 的目的。

    【讨论】:

    • 是的,我知道使用 any 会破坏目的。我基本上使用请求参数从请求标头中检索 jwt 令牌。刚刚发现我们可以使用自定义装饰器从请求参数中获取它,这样我就不必使用请求装饰器了。
    • 好一个。你是在使用 routing-controller 包来使用 @Req() 装饰器吗?
    • 不,我是从@nestjs/common 导入的。
    猜你喜欢
    • 2020-02-02
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2021-11-17
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    相关资源
    最近更新 更多