import { Equal } from '../../commonness/Equal'; import { Extends } from '../../commonness/Extends'; import { If } from '../../commonness/If'; import { IsNever } from '../../commonness/IsNever'; import { Concat } from '../../array'; /** * * Split a string into an array of strings * * 문자열을 문자열 배열로 분리하는 타입 * * @param S String to split / 분리할 문자열 * * @param D Delimiter to split by / 분리할 문자 * * @returns Array of split strings / 분리된 문자열 배열 * * @example * type cases = [ * Expect, ['Hi! How are you?']>>, * Expect, ['Hi! How are you?']>>, * Expect, ['Hi!', 'How', 'are', 'you?']>>, * Expect, ['H', 'i', '!', ' ', 'H', 'o', 'w', ' ', 'a', 'r', 'e', ' ', 'y', 'o', 'u', '?']>>, * Expect, []>>, * Expect, ['The s', 'e ', ' cos', 'e']>>, * Expect, ['Ne', ' say ne', ', fore', ' and e', '.']>>, * Expect, ['']>>, * Expect, ['']>>, * Expect, string[]>>, * ] * * @link https://www.utilscript.site/docs/usage-string/split * */ export type Split = If, [ S ], If, If, [], [S]>, If, string[], S extends `${infer First}${D}${infer Rest}` ? Concat<[First], Split> : [S]>>>;