GithubHelp home page GithubHelp logo

Comments (3)

MartinJohns avatar MartinJohns commented on April 27, 2024

This was allowed before, but then it was intentionally removed again: #56161

from typescript.

RyanCavanaugh avatar RyanCavanaugh commented on April 27, 2024

I don't think this rule makes sense to apply to string enums. Will discuss.

from typescript.

DanielRosenwasser avatar DanielRosenwasser commented on April 27, 2024

It's not purely about string enum members. It depends entirely on whether other members contribute a reverse mapping that could conflict:

Playground Link

enum E {
    Infinity = "boop",
    blah = 1/0,
}

console.log(E.Infinity); // prints "blah", not "boop"!

I other words, we need to keep the keys and reverse-mapping keys disjoint so one doesn't stomp on the other.

There's basically two ways of relaxing this:

  1. numerically named string enum members are allowed if all members of an enum are string-based
  2. numerically named string enum members are allowed if no other enum member contributes a conflicting reverse mapping

(1) is just a heavier restriction of (2) because it'll be vacuously true - there will never be any conflicting reverse mappings because there won't be any to begin with on an all-string enum.

from typescript.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.