TypeScriptでObject.valuesメソッドを使いたい!・・・が使おうとしたらコンパイル時に
Property 'values' does not exist on type 'ObjectConstructor'.
とエラーが出て少しハマったので調べてみた。
原因と解決方法
Object.values()はES2017で追加されたメソッド。
ES2017で追加されたメソッドを使う場合、コンパイルに使うライブラリファイルをES2017以上にしないと正しくコンパイルすることができない。
ちなみに、ES2017で追加されたメソッドは以下の通り。
解決するためには、tsconfig.jsonのcompilerOptionsのlibにES2017を加えてあげればOK。
tsconfig.json
{
"compilerOptions": {
- "lib": [ "es6", "dom"],
+ "lib": ["es2017", "dom"],
}
}
これで、ES2017で追加されたメソッドが正しく動くようになりました。