类型“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,如果错误仍然存在,您可能需要更新您的版本。
另一种解决方案是使用
带有标志的替换
方法而不是.g
replaceAll
索引.ts
const str = 'old old world'; const result = str.replace(/old/g, 'new'); console.log(result); // 👉️ "new new world"
我们将以下 2 个参数传递给该String.replace
方法:
- 要匹配的正则表达式。请注意,我们使用
g
(global) 标志来指定我们要匹配所有出现而不仅仅是第一个 - 替换字符串
如果必须替换所有出现的不区分大小写的字符串,可以将正则表达式传递给replaceAll
orreplace
方法。
索引.ts
const str = 'old OLD world'; const result = str.replace(/old/gi, 'new'); console.log(result); // 👉️ "new new world"
该i
标志启用不区分大小写的搜索。有关正则表达式标志的完整列表,请查看
MDN 文档中的此表。
和方法不会更改原始字符串,而是返回一个替换了匹配项的新字符串replace
。replaceAll
字符串在 JavaScript(和 TypeScript)中是不可变的。
该replace
方法比replaceAll
.
结论
要解决“Property ‘replaceAll’ does not exist on type ‘string’”错误,请将字符串添加"ES2021.String"
到文件中的lib
数组,tsconfig.json
并确保您运行的是最新版本的 TypeScript。