这个函数要怎样写才不会报错啊?
@IanSun 的回答能解决问题,但是个人觉得可以再改进一下
你既然已经做了判断,就不该再用?? 0
来处理了,执行效率变低
// 上策:
const matches = value.match(/a/g);
matches ? matches.length : 0;
// 中策:
const matches = value.match(/a/g);
matches?.length || 0;
// 下策:
value.match(/a/g) ? value.match(/a/g)!.length : 0
这里面加?.说明你有可能取值为undefined,等价于value.match(/a/g) && value.match(/a/g).length
const matches = value.match(/a/g) as string[]; // 是否可以加个断言呢?
function test(str: string) {
const result = str.match(/./)
return str.length - (result ? result.length : 0)
}
typescript 是对第二次match做的判断
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
这个和Typescript没什么关系吧。