簡體   English   中英

Typescript 錯誤 - “類型已聲明但從未使用” in.ts。 在界面中使用時

[英]Typescript error - “type is declared but never used” in .ts. When it was used in interface

為什么 typescript 給我錯誤“'HttpRequest' 已聲明但從未使用。” 什么時候在接口中使用了HttpRequest? 如何解決這個問題?

import fp from 'fastify-plugin'
import fastify from 'fastify'
import { IncomingMessage } from 'http'
import { Http2ServerRequest } from 'http2'

//'HttpRequest' is declared but never used.
type HttpRequest = IncomingMessage | Http2ServerRequest

declare module 'fastify' {
  interface FastifyRequest<
    HttpRequest,
    Query = fastify.DefaultQuery,
    Params = fastify.DefaultParams,
    Headers = fastify.DefaultHeaders,
    Body = any
  > {
    user: string
  }
}

function plugin(fastify, options, next) {
  fastify.decorateRequest('user', 'userData')
  next()
}

export const reqDecorator = fp(plugin)

這里是 FastifyRequest 接口:

interface FastifyRequest<HttpRequest = IncomingMessage, Query = fastify.DefaultQuery, Params = fastify.DefaultParams, Headers = fastify.DefaultHeaders, Body = any>

您尚未定義類型的名稱,

declare module 'fastify' {
  interface FastifyRequest<
    httpRequest = HttpRequest,

由於IncomingMessage被用作類型,你需要再次為FastifyRequest接口的類型命名,

export interface FastifyRequest<httprequest = IncomingMessage, // added this
Query = fastify.DefaultQuery,
Params = fastify.DefaultParams,
Headers = fastify.DefaultHeaders,
Body = any> {
  // interface fields and methods
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM