TypescriptでObject.valuesを使用するにはどうすればいいですか? 質問する

TypescriptでObject.valuesを使用するにはどうすればいいですか? 質問する

オブジェクトからカンマ区切りの文字列を作成しようとしています。

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意思仕事をする

おすすめ記事