I am trying to form a comma separated string from an object,
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);
How to do this with TypeScript?
getting an error file:
severity: 'Error'
message: 'Property 'values' does not exist on type 'ObjectConstructor'.'
at: '216,27'
source: 'ts'
You can use
Object.values
in TypeScript by doing this(<any>Object).values(data)
if for some reason you can't update to ES7 in tsconfig.I just hit this exact issue with Angular 6 using the CLI and workspaces to create a library using
ng g library foo
.In my case the issue was in the
tsconfig.lib.json
in the library folder which did not havees2017
included in thelib
section.Anyone stumbling across this issue with Angular 6 you just need to ensure that you update you
tsconfig.lib.json
as well as your applicationtsconfig.json
Having my
tslint
rules configuration here always replacing the lineObject["values"](myObject)
withObject.values(myObject)
.Two options if you have same issue:
(Object as any).values(myObject)
or
Even simpler, use
_.values
from underscore.js https://underscorejs.org/#valuesSimplest way is to cast the
Object
toany
, like this:And voila – no compilation errors ;)
using Object.keys instead.