proposal-class-static-block
Our great sponsors
proposal-operator-overloading | proposal-class-static-block | |
---|---|---|
9 | 5 | |
612 | 97 | |
1.3% | - | |
3.1 | 7.3 | |
4 months ago | over 2 years ago | |
JavaScript | HTML | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
proposal-operator-overloading
-
I think Zig is hard but worth it
There's a not-very-active proposal to add operator overloading to JS which takes a similar scoped approach:
https://github.com/tc39/proposal-operator-overloading
-
Applying common operators (like +, *, -, /, etc.) to objects/arrays/lists?
There's a proposal to add operator overloading to the language, but AFAIK it never landed.
-
Immutability: what a monster...
An example of it would be the operator overloading proposal https://github.com/tc39/proposal-operator-overloading that would allow overriding === and it would also solve in one shot many other problems (like numeric types extension, pipeable operator, and all the ones listed in the proposal).
-
Is there a way to access native operations via class methods?
Kind of but not really. There is the concept of operator overloading that would let you specify how to handler uses of operators like - and + with your class instances, but this is not yet officially supported in JavaScript. There is an operator overloading proposal to maybe add it in the future (and if you're using QuickJS that has support built in), but right now there's not a whole lot you can do.
- Proposed Operator Overloading in JavaScript
-
Extending Built-ins with ES6 Classes
Though this is not possible now since operators always work on primitive values, there is a proposal for operator overloading that could potentially allow us to use operators on objects in the future. It's still very early, so its not something you can use today (or anytime soon, if ever at all). In the meantime, you'll need to use method calls to perform these kinds of operations.
-
[AskJS] Why does our community hate Operator Overloading?
I'm not sure who hates it, but I have seen it abused (which people don't like). But, quickjs has it now, and there's a proposal to have it added to the JS spec. The proposal is only stage 1, so who knows what will happen with it or when, but its not counted out.
-
ES2022 feature: class static initialization blocks
https://github.com/tc39/proposal-operator-overloading
There are still a couple issues that have to be solved. m2c: I hope that won't get to stage 3, though I like operator overloading in general, I think it's something that will complicate JS even more.
- TC39 proposal: operator overloading in JavaScript
proposal-class-static-block
-
Class Static Initialization Blocks in JavaScript
If you often find yourself working with static fields you may find static initialization blocks to be a useful feature. They can help make static initialization easier. I hope that this post helped you understand what class static initialization blocks in JavaScript are and how to use them. If you want to learn more about this feature, you can take a look at the proposal available on GitHub.
-
Updates from the 85th meeting of TC39
Class Static Blocks Class static blocks provide a mechanism to perform additional static initialization during class definition evaluation.
-
ES2022 feature: class static initialization blocks
Before bashing a new feature make sure to read then criticize the actual proposal [1]. I personally think the proposal makes sense mostly because of private fields since it is very awkward to initialize those fields outside of the class.
[1] https://github.com/tc39/proposal-class-static-block
-
TypeScript 4.4: The Good, The Bad and The Not So Bad
It’s an upcoming ECMAScript feature that’s currently a stage 3 proposal. static blocks allow for a more complex initiation process of static class members.
-
Updates from 78th meeting of TC39
Class static initialization block.
What are some alternatives?
ohm - A library and language for building parsers, interpreters, compilers, etc.
proposal-array-from-async - Draft specification for a proposed Array.fromAsync method in JavaScript.
match-iz - A tiny pattern-matching library in the style of the TC39 proposal.
proposal-intl-locale-info - An API to expose information of locale, such as week data ( first day of a week, weekend start, weekend end), hour cycle, measurement system, commonly used calendar, etc.
quickjs - Public repository of the QuickJS Javascript Engine.
proposal-intl-enumeration - Return supported values of options, such as timeZone, calendars, numberingSystems, currencies, units
proposal-pattern-matching - Pattern matching syntax for ECMAScript
proposal-structs - JavaScript Structs: Fixed Layout Objects
proposal-deep-path-properties-for-re
proposal-string-dedent - TC39 Proposal to remove common leading indentation from multiline template strings
proposal-deiter - Double-Ended Iterator and Destructuring
proposal-is-usv-string - a proposal for a method to determine if a String is welll-formed Unicode