Stewart Evans
Stewart Evans

Reputation: 1536

Typescript Record item count

Is it possible to find the count of items in a Typescript record?

For example something like

const testRecord: Record<string, string> = {
  'one': 'value1',
  'two': 'value2'
};

var length = testRecord.length;

// looking for length to be 2 but is undefined as there is no length property

For reference: https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkt

Upvotes: 28

Views: 26155

Answers (2)

Daniil
Daniil

Reputation: 186

Maybe it's not what you wanted, but there is a Map type that has size property.

You can use it like this:

let m = new Map<string, any>();
m.set('a', 1)
let one = m.get('a');
console.log('a value is: ' + one + '; size of the map is: ' + m.size);

Map doesn't work exactly as Object does, so take a look at differences in behaviour first: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#objects_vs._maps

Upvotes: 1

Stewart Evans
Stewart Evans

Reputation: 1536

I've just found this answer here for the length of a javascript object which seems to work just fine:

Length of a JavaScript object

My implementation to answer the example above was:

const testRecord: Record<string, string> = {
    'one': 'value1',
    'two': 'value2'
  };

var length: Object.keys(testRecord).length;
// length equals 2

However please let me know if there is a better, more specific "Record" way to do this?

Upvotes: 48

Related Questions