UNPKG

rivo

Version:

🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.

20 lines (17 loc) • 560 B
import type { Args, Fn } from "../HKT"; import type { List } from "../List"; /** * Split a string by a separator. * * Sig: `(sep: string, s: string) => List<string>` */ export type Split<Sep extends string, S extends string> = S extends `${infer Head}${Sep}${infer Tail}` ? [Head, ...Split<Sep, Tail>] : [S]; /** * [Fn] Split a string by a separator. * * Sig: `(sep: string, s: string) => List<string>` */ export default interface SplitFn extends Fn<[string, string], List<string>> { def: ([sep, s]: Args<this>) => Split<typeof sep, typeof s>; }