文字列に正規表現を適用したい。すべてのグループの結果を取得するために、私はmatchAllメソッドを使用しています。これが私のコードです
const regexp = RegExp('foo*','g');
const str = "table football, foosball";
let matches = str.matchAll(regexp);
for (const match of matches) {
console.log(match);
}
上記のコードでコンパイル中にエラーが発生しました
プロパティ 'matchAll'はタイプ '"table football、foosball"'に存在しません
このエラーについて検索中に、stackoverflowで同様の問題を見つけました
TS2339:プロパティ 'includes'はタイプ 'string'に存在しません
上記のリンクに記載されているようにtsconfig構成を変更しましたが、問題は解決しませんでした
これが私のtsconfigコードです。
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"importHelpers": true,
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2016",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
}
}
String.prototype.matchAll() はECMAScript 2020仕様(ドラフト)の一部です。 TypeScriptでは、コンパイラオプションにes2020
またはes2020.string
を追加して、これらのライブラリ機能を含めることができます。
"compilerOptions": {
"lib": ["es2020.string"]
}