[英]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.