Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The OpenAPI Enforcer
MiddlewareFunction
and the ExpressRequestHandler
/ErrorRequestHandler
types are incompatible:Reproduction
Typescript v4.2.2
Solution Description
@types/express
type definitions instead of similar custom typesIf the Enforcer Middleware is built for Express, then we can safely assume the RequestHandler and ErrorRequestHandler types should be used instead of custom types.
Additional updates
NextFunction
type from express instead of a similar custom typeControllers
andControllersMap
types to avoid redundant declarations ofMiddleware
andControllers
dictionariesThese updates remove most of the usages of the
object
type to narrow what types are and are not allowed. Additionally, the use ofobject
is discouraged since it's usage is finicky. For example: ESLint bans Object and object types by default citing this Typescript Issue.