Sometimes you have to write a function that takes a parameter that is some massive type that is outside of your control. That can be a nuisance to test. The amount of infrastructure needed to work around this will depend upon the size and scope of your project, but for the smaller projects TypeScript has a helpful tool: the
Pick<T, K extends keyof T> is a mapped type.
Pick produces a new type that is a subset of of
T, with only the keys specified in
As an example, say you wanted test a function that consumes a Node http IncomingMessage. Producing a synthetic value of this type as written is going to require a lot of boilerplate. If you only need
url, that’s a lot of overhead. Instead, if you specify your function as taking