proposal-type-annotations
astexplorer
proposal-type-annotations | astexplorer | |
---|---|---|
110 | 46 | |
4,311 | 6,303 | |
0.5% | 0.7% | |
3.0 | 6.0 | |
about 1 month ago | 11 months ago | |
JavaScript | JavaScript | |
- | MIT 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-type-annotations
-
TypeScript enums: use cases and alternatives
After almost a decade of TypeScript my recommendation is to not use TypeScript enums.
Enums is going to make your TypeScript code not work in a future where TypeScript code can be run with Node.js or in browser when typings are added to JavaScript[1]
Enums results in runtime code and in most cases you really want type enums. Use `type State = "Active" | "Inactive"` and so on instead. And if you really want an closed-ended object use `const State = { Active: 1, Inactive: 0 } as const`
[1] https://github.com/tc39/proposal-type-annotations
-
PyScript: An open source platform for Python in the browser
Maybe as part of the Flutter/Dart sales story?
Here is the current status of the standard proposal.
https://tc39.es/proposal-type-annotations/
-
Node Will Finally suport Typescript???
So read the Github of TC39: https://github.com/tc39/proposal-type-annotations
-
Node.js adds experimental support for TypeScript
Yes. That is noted in the PR:
> There is a TC39 proposal for type annotations
Which links to https://github.com/tc39/proposal-type-annotations
It is a long ways off though.
-
5 years in, JavaScript Modules are still painful
IMO the game changer in your scenario is when type annotations are added as a standard JS feature:
https://github.com/tc39/proposal-type-annotations
At that point you'd be able to run your TS code directly without any transpiration necessary. I'd love to remove all the build process junk from my projects and have them run quicker.
-
Bun 1.1
That proposal is not fully compatible with Typescript: https://github.com/tc39/proposal-type-annotations?tab=readme...
-
Go 1.22 Release Notes
They held a meeting a few months ago so it's alive but probably still years away.
https://github.com/tc39/proposal-type-annotations/issues/184
-
[AskJS] Kicking a dead horse - TS vs JS
I particularly like this thread in the TC39 types proposal. TypeScript IS a development trojan horse and locks you into the Microsoft Way of being a JS developer.
- Strong static typing, a hill I'm willing to die on...
-
HTML First – Six principles for building simple, maintainable, web software
Edit: There is a proposal to extend JavaScript with type annotations, which would allow ("a reasonably large subset") of TypeScript to run directly in the browser. Yay!
https://github.com/tc39/proposal-type-annotations
astexplorer
-
Here's how to brew obfuscation in JavaScript without burning the lab: AST, Babel, plugins.
There are different solutions for working with JS code, with differences in the final AST. In this article, we will use babel for this purpose. You don't need to install anything, you can experiment with everything on such resource as astexplorer.
-
Building a Codemod Tool for Rewriting Default Exports
astexplorer
-
ESLint Plugin. What was missed in the doc?
https://astexplorer.net - a helpful tool to see the AST version of your code ESLint Selectors - the list of selectors typescript parser playground. astexplorer analogue for typescript. It has an essential feature: ESQuery filter. It allows you to debug your selectors in real-time.
-
Understanding Code Structure: A Beginner's Guide to Tree-sitter
You can play with your code here, and visualise ASTs for the same.
-
What is an Abstract Syntax Tree in Programming?
Website
-
How to create your own Eslint rule with tests, boosting the DX, and code-review
To understand this syntax, I recommend exploring AST Explorer. You will have a better view of how the AST of JavaScript works and how to correlate it with the Eslint syntaxy:
-
Programming from Top to Bottom - Parsing
You can never mistake type_declaration with an identifier, otherwise the program will not work. Aside from that constraint, you are free to name them whatever you like, there is no one standard, and each parser has it own naming conventions, unless you are planning to use something like LLVM. If you are interested, you can see examples of naming in different language parsers in the AST Explorer.
-
ESLint: under the hood
The rule that I want to write will be called not-allows-underscore: the idea is to abolish the use of underscores when declaring variables or functions. It's a real dummy rule, but it should be enough to see in action the concepts that we have discussed earlier. The first thing that I would do is to go to AST Explorer, write down a code that declares variables and functions (both standard and arrows one) and take a look at what type of node is the one that encodes the identifier. Doing that, I found out that the node type of my interest is Identifier, what a surprise! 🤣. In particular, the structure of the node holds the string used as identifier in the name property.
-
😱 ESlint over Conventions - You have Not unlocked the power of ESlint 😱
All the information about the API, AST node names, AST Explorer, etc. you can read in the official documentation. I’m just going to show examples of how to automate the check-up of our created conventions.
- AST Exploret
What are some alternatives?
captureSystemAudio - Capture system audio ("What-U-Hear")
gogocode - GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing a more intuitive API.
d2-playground - An online runner to play, learn, and create with D2, the modern diagram scripting language that turns text to diagrams.
jscodeshift - A JavaScript codemod toolkit.
rescript - ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript.
ChakraCore - ChakraCore is an open source Javascript engine with a C API.