import { isPickOf } from "https://dotland.deno.dev/x/unknownutil@v3.18.0/mod.ts";
Return a type predicate function that returns true
if the type of x
is Pick<ObjectOf<T>, K>
.
To enhance performance, users are advised to cache the return value of this function and mitigate the creation cost.
import { is } from "@core/unknownutil";
const isMyType = is.PickOf(is.ObjectOf({
a: is.Number,
b: is.String,
c: is.OptionalOf(is.Boolean),
}), ["a", "c"]);
const a: unknown = { a: 0, b: "a", other: "other" };
if (isMyType(a)) {
// The "b" and "other" key in `a` is ignored.
// 'a' is narrowed to { a: number; c?: boolean | undefined }
const _: { a: number; c?: boolean | undefined } = a;
}
Type Parameters
K extends keyof T
Parameters
pred: Predicate<T> & WithMetadata<IsObjectOfMetadata>
keys: K[]