gpt4 book ai didi

regex - 无法在 TypeScript 中使用 `string.replace(regex:RegExp, map: (match, ...args:any[]) => string): string`

转载 作者:搜寻专家 更新时间:2023-10-30 21:43:50 25 4
gpt4 key购买 nike

以下示例中的编译器投诉:

    function test() {
var regex = /.+/ig;
''.replace(regex, function (matched, p1) { return ''; });
}

它是 TypeScript 中的错误吗?

enter image description here

最佳答案

这是您要匹配的 lib.d.ts 中的声明行:

replace(searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string;

在编译时,我们不知道 replaceValue 函数可能需要处理多少匹配项。可能有 0 个匹配项,因此您的函数需要说明它可以处理。这里重写了:

''.replace(regex, function (matched: string, p1?: string) { return ''; });

p1 类型化为可选,编译器会满意我们可以处理这种情况。如果不指定类型,则无法指定参数是可选的,所以我也这样做了。

关于regex - 无法在 TypeScript 中使用 `string.replace(regex:RegExp, map: (match, ...args:any[]) => string): string`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21096884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com