kg2152
kg2152

Reputation: 168

Dynamic Enum keys in Typescript

Let's say I have defined

enum Sort {
  nameAsc = 'nameAsc',
  nameDesc = 'nameDesc'
}

Can I do something like this?

const key = 'name' + 'Desc';
Sort[key]

Thanks in advance

Upvotes: 3

Views: 6845

Answers (1)

Nino Filiu
Nino Filiu

Reputation: 18513

Yes

This:

// index.ts
enum Sort {
    nameAsc = 'nameAscValue',
    nameDesc = 'nameDescValue'
}
const key = 'name'+'Desc';
console.log(Sort[key]);

Compiles to (using tsc index.ts):

// index.js
var Sort;
(function (Sort) {
    Sort["nameAsc"] = "nameAscValue";
    Sort["nameDesc"] = "nameDescValue";
})(Sort || (Sort = {}));
var key = 'name' + 'Desc';
console.log(Sort[key]);

Which outputs (using node index.js):

nameDescValue

Upvotes: 4

Related Questions