Giter Site home page Giter Site logo

roxanamuntian / type-system-react Goto Github PK

View Code? Open in Web Editor NEW

This project forked from joshuakgoldberg/type-system-react

0.0 0.0 0.0 13 KB

A "fun" implementation of a JSX rendering engine similar to React's ... in the TypeScript type system.

License: MIT License

TypeScript 100.00%

type-system-react's Introduction

Type System React

A "fun" implementation of a JSX rendering engine similar to React's ... in the TypeScript type system.

export type ComponentRegistry = {
  Emoji: "๐Ÿ’–";
  Heading: "<h1>{children}</h1>";
};

export type Result = Render<"<Heading>Hello, world! <Emoji /></Heading>">;

export type PrintMe = Result;
//          ^? type PrintMe = "<h1>Hello, world! ๐Ÿ’–</h1>"

End Goal

This walkthrough includes:

  • Rendering a self-closing element
  • Rendering an element with {children}
  • Component registry
  • Bugs (probably) (almost certainly) (definitely)

It does not include:

  • Space-sensitive parsing
  • Props other than children
  • Logic, including hooks or state
  • React Server Components

What's Inside

  1. src/foundations: Building up most of the general TypeScript syntax features we'll use to implement our JSX renderer
  2. src/fun: Building up the JSX renderer using the foundational features

See the README.md files within each step, such as src/foundations/0-types/README.md.

type-system-react's People

Contributors

joshuakgoldberg avatar

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.