TypeScript
TypeScript > Request Types - itty-router
Throughout the type definitions in this library, you'll notice we use one of two types to define requests flowing through the router/handlers:
IRequestStrict- This extendsRequestand adds our custom properties.IRequest(default) - This takesIRequestStrict, then adds generic traps to allow undefined properties. This is the default request type in itty, specifically to allow lazy typing unless more strict typing is needed.
Strict Mode
To enforce strict types, extend IRequestStrict.
ts
import { IRequestStrict } from 'itty-router'
type FooRequest = {
foo: string
} & IRequestStrictLazy Mode
For a more generic approach, extend IRequest. This is mostly useful if you're modifying/accessing properties on the request and don't want to be chasing types all day.
ts
import { IRequest } from 'itty-router'
type FooRequest = {
foo: string
} & IRequestTLDR; Great for sandboxing, maybe not so great for production.
