类型“字符串”上不存在属性“replaceAll”

类型“String”上不存在属性“replaceAll”

Property ‘replaceAll’ does not exist on type ‘string’

要解决“Property ‘replaceAll’ does not exist on type ‘string’”错误,请将字符串添加"ES2021.String"到文件中的lib数组,tsconfig.json并确保您运行的是最新版本的 TypeScript。

打开你的
tsconfig.json
文件并添加
ES2021.String到你的lib数组中。

tsconfig.json文件
{ "compilerOptions": { // ... other options "lib": [ // ... other libs "ES2021.String" ] } }

这将解决错误,您将能够使用该replaceAll()
方法。

索引.ts
const str = 'old old world'; const result = str.replaceAll('old', 'new'); console.log(result); // 👉️ "new new world"

如果您仍然无法使用该replaceAll方法,请确保您运行的是最新版本的 TypeScript。

npm install -g typescript@latest npm install --save-dev typescript@latest
如果您使用的是 Angular.js,如果错误仍然存​​在,您可能需要更新您的版本。

另一种解决方案是使用
带有
标志的
替换
方法而不是
.
greplaceAll

索引.ts
const str = 'old old world'; const result = str.replace(/old/g, 'new'); console.log(result); // 👉️ "new new world"

我们将以下 2 个参数传递给该String.replace方法:

  1. 要匹配的正则表达式。请注意,我们使用g(global) 标志来指定我们要匹配所有出现而不仅仅是第一个
  2. 替换字符串

如果必须替换所有出现的不区分大小写的字符串,可以将正则表达式传递给replaceAllorreplace方法。

索引.ts
const str = 'old OLD world'; const result = str.replace(/old/gi, 'new'); console.log(result); // 👉️ "new new world"

i标志启用不区分大小写的搜索。有关正则表达式标志的完整列表,请查看
MDN 文档中的此表。

方法不会更改原始字符串,而是返回一个替换了匹配项的新字符串replacereplaceAll字符串在 JavaScript(和 TypeScript)中是不可变的。

replace方法比replaceAll.

结论

要解决“Property ‘replaceAll’ does not exist on type ‘string’”错误,请将字符串添加"ES2021.String"到文件中的lib数组,tsconfig.json并确保您运行的是最新版本的 TypeScript。