摘要:
type NonEmptyArray<T> = [T, ...Array<T>]; export const makeEnum = (values: NonEmptyArray<string>) => {}; makeEnum(["a"]); makeEnum(["a", "b", "c"]); / 阅读全文
摘要:
export type Maybe<T extends {}> = T | null | undefined; type tests = [ // @ts-expect-error Maybe<null>, // @ts-expect-error Maybe<undefined>, Maybe<st 阅读全文
摘要:
import { Equal, Expect } from "../helpers/type-utils"; type Maybe<T> = T | null | undefined; type tests = [ Expect<Equal<Maybe<string>, string | null 阅读全文
摘要:
import { Equal, Expect } from "../helpers/type-utils"; type Identity<T> = T; type tests = [ Expect<Equal<Identity<1>, 1>>, Expect<Equal<Identity<"1">, 阅读全文
摘要:
Let's say we have type TemplateLiteralKey = `${"user" | "post" | "comment"}${"Id" | "Name"}`; We want to make a type type ObjectOfKeys = unknown; In o 阅读全文
摘要:
Here we have a Sandwich type that's currently assigned to unknown We also have a couple of union types, BreadType and Filling, that have several optio 阅读全文
摘要:
Let's say we have an object as const: const frontendToBackendEnumMap = { singleModule: "SINGLE_MODULE", multiModule: "MULTI_MODULE", sharedModule: "SH 阅读全文
摘要:
Let's say we have a const of object: export const programModeEnumMap = { GROUP: "group", ANNOUNCEMENT: "announcement", ONE_ON_ONE: "1on1", SELF_DIRECT 阅读全文
摘要:
For example we have a discriminated union type: export type Event = | { type: "click"; event: MouseEvent; } | { type: "focus"; event: FocusEvent; } | 阅读全文
摘要:
Give a discriminated union: export type Event = | { type: "click"; event: MouseEvent; } | { type: "focus"; event: FocusEvent; } | { type: "keydown"; e 阅读全文