diff --git a/source/replace.d.ts b/source/replace.d.ts index df523a999..56c487677 100644 --- a/source/replace.d.ts +++ b/source/replace.d.ts @@ -62,6 +62,6 @@ export type Replace< Options extends ReplaceOptions = {}, > = Input extends `${infer Head}${Search}${infer Tail}` ? Options['all'] extends true - ? Replace<`${Head}${Replacement}${Tail}`, Search, Replacement, Options> + ? `${Head}${Replacement}${Replace}` : `${Head}${Replacement}${Tail}` : Input; diff --git a/test-d/replace.ts b/test-d/replace.ts index 371d02423..92ec34291 100644 --- a/test-d/replace.ts +++ b/test-d/replace.ts @@ -26,3 +26,4 @@ expectType<'hello ❓?'>(replace('hello ??', '?', '❓')); expectType<'10-42-00'>(replaceAll('10:42:00', ':', '-')); expectType<'userName'>(replaceAll('__userName__', '__', '')); expectType<'MyCoolTitle'>(replaceAll('My Cool Title', ' ', '')); +expectType<'fobarfobar'>(replaceAll('foobarfoobar', 'ob', 'b'));