inad9300 / soil Goto Github PK
View Code? Open in Web Editor NEW๐ฑ Type-safe HTML and custom components at your fingertips.
License: GNU Affero General Public License v3.0
๐ฑ Type-safe HTML and custom components at your fingertips.
License: GNU Affero General Public License v3.0
I know there is no proper workaround - we have to wait for TypeScript 2.8, but still I think that DeepPartial is extremely slow. I have for now changed it to:
export type DeepPartial<T> = {} | T
which kind of works, but does not throw on non existing properties...
Wow, perfect library! Just what I was looking for ;).
Many years ago I started with JQuery, then continued with Knockout, VueJS, React, Mithril. Just recently I realised that virtual DOM is overkill for most situations so I started playing with RE:DOM. I did not like the experience (I love TypeScript). And now I found Soil! ๐ Together with Type-Style it will cover most of my needs ;). Thanks for the hard work you put into it!
I have a couple of tiny little comments:
h.form([])
does not shoot a type error but it should probably because it fails in runtimelib.es2016.full.d.ts
such as HTMLSelectElement
contain [name: string]: any;
which then allows to add e.g. class
as attribute, which does not work. I do not know the reasoning of the TypeScript team behind but I would probably prefer to shoot an error if an unknown property was added to e.g. h.select
element. What do you think about it?The type definitions of ARIA attributes for SVG elements is well defined thanks to the information available at https://www.w3.org/TR/SVG2/attindex.html. Similar information should be possible to obtain for HTML elements, which at the moment all accept any ARIA attribute. One possible source for this is https://www.w3.org/TR/html-aria/#docconformance, although the format is at first sight not the easiest to parse.
Despite everything working locally, the Travis CI build fails. It used to work without problems, and according to the build history it only started failing after modifying a README.md
file.
Related issues:
It is finally coming to Chrome! https://mathml.igalia.com/
The m
namespace should be used.
Currently, the children of HTML elements are restricted according to the information available at https://www.w3.org/TR/html52/fullindex.html#index-elements and https://www.w3.org/TR/html52/fullindex.html#element-content-categories. Similar information should be possible to obtain for SVG elements โ MDN displays such information, for example at https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncG#Usage_context.
(Current SVG specification: https://www.w3.org/TR/SVG2/.)
<input>
s and possibly other elements have properties which apply only to elements of a certain type (e.g. "checkbox", "file", etc.) The usage of TypeScript's conditional types should be considered with the objective of improving the type information for such cases.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.