Need help with TypL?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

getify
281 Stars 12 Forks MIT License 101 Commits 18 Opened issues

Description

The Type Linter for JS

Services available

!
?

Need anything else?

Contributors list

# 3
JavaScr...
React
es2015
ES6
93 commits
# 557,089
HTML
CSS
7 commits

TypL

The Type Linter for JS.

Overview

TypL provides optional type annotations for JS programs, so you can verify that you haven't mixed incompatible value-types in any operations (which can cause bugs!). However, TypL takes a different approach from the more well-known TypeScript and Flow tools.

As a quick glance at the differences:

  • not a typed-language variant of JS, but rather a (type) linter in the truest sense: TypL checks code against a set of opinions (that you control!) about how types should be treated in your program; with a heavy emphasis on type inferencing, you can run type linting on existing JS programs without any code changes

  • for type annotations, uses only standard valid JS syntax (ES6 template tags), so type-annotated code can be executed without any compilation step if desired (as long as the runtime library is present)

  • shifts focus from "typing your variables" to "typing your values and expressions"; variables optionally get assigned "implied types" from the annotated value-types

  • provides compile-time static type checks as well as runtime dynamic type checks (assertions), both of which are optional

  • completely configurable (like ESLint), so you're always in control of what is reported as a type error or not -- for example, you decide if some specific type conversion/coercion is allowed, etc

TypL is still in early development. For more information, please see: TypL.dev.

Run

bin/typl --file=./some-code.js

or:

node ./lib/cli.js --file=./some-code.js

Test

npm test

Project Champions

I would like to thank the following people for their generous sponsorship as a project champion. You are awesome!

License

All code and documentation are (c) 2019 Kyle Simpson and released under the MIT License. A copy of the MIT License is also included.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.