Replace
提出詳細
type Replace<S extends string, From extends string, To extends string> = From extends "" ? S : S extends `${infer Head}${From}${infer Rest}` ? `${Head}${To}${Rest}` : S
| 提出日時 | 2023-09-13 14:35:44 | 
|---|---|
| 問題 | Replace | 
| ユーザー | sankantsu | 
| ステータス | Accepted | 
import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect<Equal<Replace<'foobar', 'bar', 'foo'>, 'foofoo'>>, Expect<Equal<Replace<'foobarbar', 'bar', 'foo'>, 'foofoobar'>>, Expect<Equal<Replace<'foobarbar', '', 'foo'>, 'foobarbar'>>, Expect<Equal<Replace<'foobarbar', 'bar', ''>, 'foobar'>>, Expect<Equal<Replace<'foobarbar', 'bra', 'foo'>, 'foobarbar'>>, Expect<Equal<Replace<'', '', ''>, ''>>, ]