オブジェクトからカンマ区切りの文字列を作成しようとしています。
const data = {"Ticket-1.pdf":"8e6e8255-a6e9-4626-9606-4cd255055f71.pdf","Ticket-2.pdf":"106c3613-d976-4331-ab0c-d581576e7ca1.pdf"};
const values = Object.values(data).map(x => x.substr(0, x.length - 4));
const commaJoinedValues = values.join(',');
console.log(commaJoinedValues);
TypeScript でこれをどうやって行うのでしょうか?
エラーファイルを取得しています:
severity: 'Error'
message: 'Property 'values' does not exist on type 'ObjectConstructor'.'
at: '216,27'
source: 'ts'
ベストアンサー1
Object.values()
はES2017の一部コンパイル エラーが発生するのは、TS が ES2017 ライブラリを使用するように構成する必要があるためです。現在の TS 構成では、おそらく ES6 または ES5 ライブラリを使用しています。
解決策:es2017
またはをes2017.object
使用する--lib
コンパイラオプション。
たとえば、次のように使用しますtsconfig.json
。
"compilerOptions": {
"lib": ["es2017", "dom"]
}
TypeScriptでES2017をターゲットにする場合するないES2017のブラウザでポリフィルを生成する(つまり、上記はあなたのコンパイルエラーが発生しますが、ランタイムブラウザがES2017を実装していないためにエラーが発生するObject.values
場合、必要に応じてプロジェクトコードをポリフィルする必要があります。Object.values
まだすべてのブラウザでサポートされているわけではない(この記事の執筆時点では) ポリフィルが絶対に必要です:core-js
意思仕事をする。