挑战
实现 Replace<S, From, To>
将字符串 S
中的第一个子字符串 From
替换为 To
。
例如
解答
我们要把某部分替换成另一部分,这意味着我们需要将输入字符串分成三部分,并对每一部分进行推断。
我们从字符串左边开始推断,直到找到 From
,From
右边的内容又是另一部分。
我们会通过条件类型检查字符串 S
是否可以被拆分为 L
、From
和 R
三部分。一旦推断成功,我们就可以通过构造模板字面量的各个部分,并用 To
替换掉 From
部分来返回一个新的模板字面量。
还有一种特殊情况需要处理,如果 From
是空字符串,不需要做替换。
所以最终实现为:
参考链接