string vs numeric enums

Benchmark created on


Setup

"use strict";
var TheoreticalOverheadedEnum;
(function (TheoreticalOverheadedEnum) {
    TheoreticalOverheadedEnum["One"] = "1";
    TheoreticalOverheadedEnum["Two"] = "2";
})(TheoreticalOverheadedEnum || (TheoreticalOverheadedEnum = {}));
var OptimalNumericEnum;
(function (OptimalNumericEnum) {
    OptimalNumericEnum[OptimalNumericEnum["One"] = 0] = "One";
    OptimalNumericEnum[OptimalNumericEnum["Two"] = 1] = "Two";
})(OptimalNumericEnum || (OptimalNumericEnum = {}));

Test runner

Ready to run.

Testing in
TestOps/sec
Numeric Enum
const c = 0;
let b = false;
if (c === OptimalNumericEnum.One) {
    b = true;
}
ready
String Enum
let a = '1';
let b = false;
if (a === TheoreticalOverheadedEnum.One) {
    b = true;
}
ready
Union string
let a = '1';
let b = false;
if (a === '1') {
    b = true;
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.