awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
tc39 avatar

tc39/proposal-type-annotations

0
View on GitHub↗
4,386 stars·52 forks·JavaScript·22 viewstc39.es/proposal-type-annotations↗

Proposal Type Annotations

This is an ECMAScript proposal that adds static type syntax to JavaScript, enabling type checking without a separate transpilation step. The proposal defines a standard for type annotations, interfaces, generics, and type imports and exports that are stripped during execution, allowing code to run natively in existing JavaScript engines while still being validated by external type checkers.

The proposal introduces generic type parameters using angle-bracket syntax on functions, classes, and type declarations, which are removed at runtime. It also provides syntax for type annotations on variables, parameters, class members, and function signatures, all of which are treated as non-executable metadata. Additional capabilities include type assertions, optional parameter marking, typed this parameters, and reusable type aliases created with type and interface declarations.

Type definitions can be shared across modules using import type and export type statements that are ignored at runtime and do not trigger module resolution. The proposal covers class member type annotations, generic type argument specification, and generic type parameter declaration, all designed to be stripped away during execution.

Features

  • ECMAScript Type Specifications - Defines a standard for type syntax, interfaces, generics, and type imports/exports stripped at runtime.
  • Runtime-Stripped Generic Parameters - Introduces angle-bracket generic type parameters that are removed during execution.
  • Variable Type Declarations - Attaches type information to variable declarations and function parameters using colon syntax.
  • Runtime-Ignored Type Execution - Treats type annotations on variables, parameters, and class members as non-executable metadata.
  • Type Annotation Stripping - Annotates JavaScript with static type syntax that is stripped at runtime for direct execution.
  • Non-Compiled Static Typing - Adds runtime-ignored type annotations to JavaScript for static type checking without compilation.
  • Explicit Type Argument Syntax - Provides syntax for specifying explicit type arguments in generic calls and instantiations.
  • Type Parameter Declaration Syntax - Defines type parameters on functions, classes, and type declarations using angle brackets.
  • Type-Only Imports - Shares type definitions across modules using import/export statements ignored at runtime.
  • Named Type Aliases - Creates named types with type and interface declarations that are stripped at runtime.
  • Class Member Annotations - Attaches types to class properties, methods, and constructor parameters for validation.
  • Static Type Assertions - Overrides inferred types using assertion syntax without any runtime effect.
  • Static Type Checking - Validates code with static analysis while keeping the runtime module graph free of type information.

Star history

Star history chart for tc39/proposal-type-annotationsStar history chart for tc39/proposal-type-annotations

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does tc39/proposal-type-annotations do?

This is an ECMAScript proposal that adds static type syntax to JavaScript, enabling type checking without a separate transpilation step. The proposal defines a standard for type annotations, interfaces, generics, and type imports and exports that are stripped during execution, allowing code to run natively in existing JavaScript engines while still being validated by external type checkers.

What are the main features of tc39/proposal-type-annotations?

The main features of tc39/proposal-type-annotations are: ECMAScript Type Specifications, Runtime-Stripped Generic Parameters, Variable Type Declarations, Runtime-Ignored Type Execution, Type Annotation Stripping, Non-Compiled Static Typing, Explicit Type Argument Syntax, Type Parameter Declaration Syntax.

What are some open-source alternatives to tc39/proposal-type-annotations?

Open-source alternatives to tc39/proposal-type-annotations include: microsoft/typescript-handbook — This project is a comprehensive guide and educational resource for the TypeScript language. It covers the fundamental… gopl-zh/gopl-zh.github.com — This project is a Chinese translation of a comprehensive guide to the Go programming language. It serves as a… alangpierce/sucrase — Sucrase is a high-speed transpilation tool that compiles modern JavaScript, TypeScript, JSX, and Flow to standard… facebook/flow — Flow is a JavaScript static type checker and AST parser that identifies type errors and prevents runtime failures… gibbok/typescript-book — The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source. rust-lang/rust-by-example — This project is an interactive programming education resource and tutorial designed for learning the Rust programming…

Open-source alternatives to Proposal Type Annotations

Similar open-source projects, ranked by how many features they share with Proposal Type Annotations.
  • microsoft/typescript-handbookmicrosoft avatar

    microsoft/TypeScript-Handbook

    4,855View on GitHub↗

    This project is a comprehensive guide and educational resource for the TypeScript language. It covers the fundamental principles of the language, including its structural type system, static type analysis, and the process of transpiling typed source files into JavaScript. The material details how to model complex data and reusable type logic using generics, conditional types, and mapped types. It also explains the use of declaration files to provide type safety for external JavaScript libraries and the integration of type checking into existing JavaScript projects via JSDoc annotations. The

    JavaScriptdocumentationlearntypescript
    View on GitHub↗4,855
  • gibbok/typescript-bookgibbok avatar

    gibbok/typescript-book

    10,317View on GitHub↗

    The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.

    JavaScriptbookfreejavascript
    View on GitHub↗10,317
  • alangpierce/sucrasealangpierce avatar

    alangpierce/sucrase

    5,860View on GitHub↗

    Sucrase is a high-speed transpilation tool that compiles modern JavaScript, TypeScript, JSX, and Flow to standard JavaScript for modern runtimes. It operates as a fast alternative to Babel, using a single-pass scanner and tokenizer that strips type annotations and applies only requested syntax transforms without building an AST or performing type checking. The tool differentiates itself through a zero-type-checking pipeline that omits type checking entirely, relying on the assumption that input code is already valid for the target runtime. It uses scanner-based tokenization and single-pass co

    TypeScriptcompileres-modulesjavascript
    View on GitHub↗5,860
  • facebook/flowfacebook avatar

    facebook/flow

    22,232View on GitHub↗

    Flow is a JavaScript static type checker and AST parser that identifies type errors and prevents runtime failures through static annotations. It functions as a code intelligence engine and a static analysis linter to identify unsafe coding patterns and enforce consistency across a codebase. The project includes a type annotation stripper that removes static type signatures from source code, ensuring the resulting JavaScript is compatible with any runtime environment. It also provides a parser that converts typed JavaScript into an abstract syntax tree conforming to the ESTree specification.

    Rust
    View on GitHub↗22,232
  • See all 30 alternatives to Proposal Type Annotations→