/awesome-typescript

A collection of awesome TypeScript resources for client-side and server-side development. Write your awesome JavaScript in TypeScript

The UnlicenseUnlicense

Awesome TypeScript

-= Awesome TypeScript =- Awesome Elasticsearch β†’

A collection of awesome TypeScript resources for client-side and server-side development. Write your awesome JavaScript in TypeScript. Inspired by the awesome lists.

More awesome resources

semlinker/awesome-typescript thank you @semlinker for curating the list!

Contributing

Please take a quick look at the contribution guidelines first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file.

Contents

Getting Started with (Awesome) TypeScript

Awesome TypeScript Essential Resources

Typescript Project Starters

  • typescript-starter – A CLI to quickly generate and configure new libraries and Node.js projects
  • next-smrt – A Typescript/NextJs boilerplate with Redux/Styled Components/Material UI and TypeSafe Actions.
  • :octocat: Next-Postgres-With-Typescript - Forum-like fullstack web app boilerplate with Next.js 7.0.2 + Sequelize 4/Postgres + Typescript + Redux + Passport Local Auth + Emotion
  • MicroTS Microservice code generator with interface-first approach: from OpenAPI (Swagger) REST API specification is generated complete project with TypeScript code, input validator, UI, tests and Docker configuration.
  • pankod/next-boilerplate A well-structured production ready Next.js boilerplate with Typescript, Redux, Jest, Enzyme, Express.js, Sass, Css, EnvConfig, Reverse Proxy, Bundle Analyzer and Built-in CLI
  • jsynowiec/node-typescript-boilerplate Up-to-date, developer ready and comprehensive, yet minimalistic template. Works out of the box for most Node.js projects. All basic tools included and configured. Targets latest Node.js LTS and TypeScript releases.
  • typescript-express-starter - Quick and Easy TypeScript Express Starter.
  • The Knests Stack - Full stack boilerplate (hackathon starter) with: PostgreSQL, Knex.js, NestJS, Next.js, GraphQL, React (with hooks and typescript), Material-UI, Docker multistage images for, Docker compose and a Gitlab CI/CD pipeline fully configured.
  • tRPC + Next.js - Full-stack starter projects for end-to-end type safe development with React
  • nd.ts - setup bare minimum Node.ts project asap
  • :octocat: samchon/backend - TypeScript backend template project using the NestJS (nestia) and TypeORM (safe-typeorm). It helps newbie backend developers through the derived example projects. Also, it even supports the non-distruptive update system in the process level through the pm2.
  • πŸ™†β€β™‚οΈ ts-express-boilerplate - ExpressJS / Typescript template good to start backend projects, with a focus on simplicity and minimal features :P It has logging and testing configured out of the box. Typeorm is used for data access.
  • create-typescript-app - provides a starting point for TypeScript web applications. pnpm, Rollup, Jest, and CSS Modules with SCSS.

Books

Reference Lists

Blogs

CLI and REPL

  • Use ts-node to run scripts or REPL
  • How to make executable typescript scripts:
    1. Make sure you have npx (shipped with npm >= 5.2) and typescript package is installed
    2. Add this shebang as first line to your script: #!npx ts-node
    3. Make script executable: chmod +x script.ts
    4. Run directly: ./script.ts :)

IDE

Offline

Visual Studio
Other (Plugins || Cross-platform || OSS || Free)

Online

Playground

Build Systems

  • Grunt tasks:
    • grunt-ts - Grunt-ts is an npm package that handles TypeScript compilation work in GruntJS build scripts
  • Zwitterion - Super simple development server with built-in support for TypeScript files.

Cloud Data Warehousing

  • ✨ Crisp BigQuery Starter project that delivers Google BigQuery data to end user browsers with cost control. Allows to implement rich data presentation options.
  • DDB-Table Strongly typed querys and tables for AWS DynamoDB

Module Bundlers

CMS

  • Factor - The Javascript CMS (TypeScript supported natively)

Tools

  • deno - A secure runtime for JavaScript and TypeScript
  • SweetIQ/schemats Generate typescript interface definitions from SQL database schema
  • TypeDoc - A documentation generator for TypeScript projects
  • TypeScript Standard - Zero-configuration TypeScript 2 Standard Validation
  • typed-install - Easily install new dependencies and their typings, no matter where they may be
  • Interactive TypeScript AST Viewer - Write TypeScript snippets and explore its AST.
  • type-config - A generator for tsconfig.
  • Zapatos - Zero-Abstraction Postgres for TypeScript
  • dep-tree - Render your project's file dependency tree and/or validate it against your own rules.

Types

  • jsonup - Compile-time JSON parser
  • type-o-rama - JS type systems interoperability
  • utility-types - Utility Types for TypeScript (provide compatibility with Flow's Utility Types)
  • elm-ts - Port of Elm architecture to TypeScript featuring fp-ts, io-ts, rxjs5 and React
  • ts-essentials - All essential TypeScript types in one place
  • typescript-conditional-types - Helpers for typescript generic types
  • ts-types-utils - Type utilities for typescript
  • typesync - Install missing TypeScript typings for dependencies in your package.json.
  • type-fest - A collection of essential TypeScript types
  • typetype - A programming language designed for typescript type generation
  • nominal - nominal types & dependent types for Typescript.
  • @tool-belt/type-predicates - Type Predicates, Assertion Functions and Utilities.
  • getmytypes - Install @types files into your devDependencies.
  • ts-toolbelt - Large collection of type utilities for TypeScript

Runtime

  • json-decoder - Typesafe JSON decoder and runtime checker
  • typescript-is - TypeScript transformer that generates run-time type-checks.
  • type-plus - Additional types and type adjusted utilities
  • Agent Framework Create interceptor for your class and method using decorators
  • SunTori - A JSON de/serializer to ensure everything is safe at runtime.

Validation

  • io-ts - Runtime type system for IO decoding/encoding
  • zod - TypeScript-first schema validation with static type inference
  • runtypes - Runtime validation for static types
  • ts-codec - TypeScript Codecs for encoding, decoding and validating data
  • ow - Function argument validation for humans
  • superstruct - A simple and composable way to validate data
  • computed-types - 🦩 Joi like validations for TypeScript
  • json-schema-to-ts - Dynamic type inference from JSON schemas
  • Yunomix - A form validation toolkit which is designed in AOP form.
  • typia - Superfast runtime validator 15,000x faster than class-validator. Also, supports faster JSON and Protocol Buffer functions even type safe. Those features can be performed by only one line.
  • fta - Rust-based static analysis to monitor code quality

Built with TypeScript

Mobile

  • :octocat: NativeScript - Open Source framework for building cross-platform truly native iOS, Android and Windows mobile apps using JavaScript
  • Monaco Editor

Web

  • :octocat: Angular - Angular is a development platform for building mobile and desktop web applications
  • :octocat: feednext.io - An open-source social media application built with Typescript on both client-server side.
  • :octocat: ionic - An open-source mobile app development framework build in TypeScript
  • :octocat: React-UWP - React Components that Implement Microsoft's UWP Design & Fluent Design.
  • :octocat: palantir/plottable - A library of modular chart components, built on D3 (see also: http://plottablejs.org)
  • :octocat: APIs-guru/graphql-voyager - Represent any GraphQL API as an interactive graph πŸ›°οΈ
  • :octocat: Rebilly/ReDoc - OpenAPI/Swagger-generated API Reference Documentation
  • :octocat: excaliburjs/Excalibur - Free open source JavaScript game engine
  • :octocat: Bobril - Component oriented framework inspired by Mithril and ReactJs. (see also: http://bobril.com/)
  • :octocat: Stencil - a tool for building modern Web Components
  • :octocat: redux-zero - A lightweight state container based on Redux
  • :octocat: wretch - A tiny (< 2.2Kb g-zipped) wrapper built around fetch with an intuitive syntax.
  • :octocat: Cycle.js - A functional and reactive JavaScript framework for predictable code.
  • :octocat: Tridactyl - A Firefox browser addon that replaces browser's control mechanism with one modelled on the one true editor, Vim.
  • :octocat: armour/vue-typescript-admin-template - A vue-cli 3.0 & typescript minimal admin template + a production-ready front-end solution for admin interfaces (demo)
  • :octocat: n8n.io - Open Source Workflow Automation Tool
  • :octocat: Dnote - A command line notebook with a multi-device sync and a web interface.
  • :octocat: Thin Backend - Realtime Backend for your Single Page Apps, with End-to-End Type Safety thanks to types being derived from the Postgres Schema
  • :octocat: Flowbite - Open-source component library built on top of Tailwind CSS featuring interactive UI components built with TypeScript
  • :octocat: ILLA Cloud - Open source low-code platform alternative to Retool and Appsmith for developers to build internal tools in minutes.
  • :octocat: Treehouse - Open source lightweight library to build your own note-taking tool.

Web/ReactJS

Back-end API

  • :octocat: Actio - The Node.js framework for monoliths and microservices.
  • :octocat: design-first - A REST Api templating engine for Typescript
  • :octocat: Nest - A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript πŸš€ (see also: https://nestjs.com/)
    • :octocat: nestia - 15,000x faster validation decorators than class-validator and Swagger/SDK generators.
  • :octocat: LoopBack 4 - A highly extensible Node.js and TypeScript framework for building APIs and microservices. πŸš€ (see also: https://loopback.io/)
  • :octocat: FoalTS - A simple, intuitive and complete framework for building enterprise-grade Node.JS applications πŸ’₯ πŸš€ (see also: https://foalts.org)
  • :octocat: Enso - Typescript first Node.JS framework inspired by Domain Driven Design principles with a focus on composition and Developer Experience
  • :octocat: Libstack - A collection of various modules to create Typescript server easily and ready to be deployed on Docker.
  • :octocat: tinyhttp - A modern Express-like web framework for Node.js, written in TypeScript and compiled to Native ESM.
  • :octocat: ZenTS - A modern Node.js and TypeScript first framework for building rich web applications (see also: https://zents.dev)
  • :octocat: Booster Framework - Event-driven cloud native GraphQL open-source framework, part of the Booster Cloud ecosystem. It makes use of high-level abstractions and conventions. (see also: https://booster.cloud)

Standalone apps

  • :octocat: Visual Studio Code - Multiplatform IDE.
  • :octocat: alm - A next generation IDE just for TypeScript written in TypeScript + React
  • :octocat: App Outlet - An universal linux app store for AppImages/Flatpaks/Snaps written in TypeScript + Angular
  • :octocat: SnowFS - a fast, scalable version control file storage for graphic files
Chrome Extensions

Design patterns

Libraries

  • :octocat: Procedurem - A Small (2kb) And Performant Bi-Directional RPC Library Using WebSockets.
  • :octocat: RxJS - A reactive programming library for JavaScript.
  • :octocat: xstream - An extremely intuitive, small, and fast functional reactive stream library for JavaScript.
  • :octocat: substitute.js - A fluent mocking library for TypeScript ported from NSubstitute.
  • :octocat: TypeMoq - A simple mocking library for TypeScript.
  • :octocat: fast-check - Property based testing framework for TypeScript.
  • :octocat: InversifyJS - powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.
  • :octocat: TypeORM - ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
    • :octocat: Safe-TypeORM - Enhances TypeORM in the compilation level and supports automated performance tuning tools through the application level joining. Furthermore, your raw SQL queries would be ensured safety by type meta programming.
  • :octocat: MikroORM - TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.
  • :octocat: Prisma - Modern database access (ORM alternative) for Node.js & TypeScript | PostgreSQL, MySQL & SQLite
  • :octocat: Neuledge - Neuledge is a universal language for databases that provides state-of-the-art tools for data modeling, business logic representation, and schema validation.
  • :octocat: Typetta - Typescript ORM for Node.js that uses GraphQL as schema definition language | Supports all main SQL databases and MongoDB.
  • :octocat: TypeGQL - Set of tools for creating GraphQL schema directly from typed TypeScript class.
  • :octocat: TSTL - Implementation of C++ STL (Standard Template Library) in TypeScript. Provided modules are containers, iterators, algorithms and functors.
    • :octocat: ECol - Extension of TSTL containers; collections dispatching Elements I/O events.
    • :octocat: TGrid - Grid Computing Framework, Network & Thread extension of TSTL, supporting RFC (Remote Function Call).
    • :octocat: Mutex-Server - Critical sections controller, like mutex and semaphore, in the network level.
  • :octocat: Kalimdor.js - Machine Learning library for the Web, Node and Developers!
  • :octocat: prelude.ts - Functional programming: immutable persistent collections, constructs such as Option and Either, and combinators.
  • :octocat: ee-ts - Typed event emitters
  • :octocat: io-ts - Type validation at runtime
  • :octocat: mokia - A mock server integrated data simulation and http service.
  • :octocat: sub-events - Strongly-typed events.
  • :octocat: ts-audio - an agnostic and easy-to-use library to work with the AudioContext API
  • :octocat: tslog - A powerful logging library with native TypeScript support: beautiful interpolation, native V8 stack trace, secret masking, support for requestIds based on AsyncLocalStorage
  • :octocat: tsParticles - A lightweight library for easily creating particles animations for websites (Supports also ReactJS, VueJS, Angular, Svelte and others)
  • :octocat: statek - Reactive state management library
  • :octocat: Injex - Simple, Decorated, Pluggable dependency-injection framework for TypeScript applications
  • :octocat: tRPC - TypeScript toolkit for building end-to-end type-safe APIs
  • :octocat: interface-forge - Test data factories using TypeScript types and interfaces
  • :octocat: iter-ops - Operations with iterable objects
  • :octocat: Remult - End-to-end type-safe CRUD and frontend-backend model code sharing in fullstack TypeScript applications.
  • :octocat: Jest - A comprehensive JavaScript testing solution. Works out of the box for most JavaScript projects.
  • :octocat: diod - A very opinionated and lightweight inversion of control container and dependency injector for Node.js or browser apps.
  • :octocat: @deliberative/crypto - A Typescript/WebAssembly library for public key cryptography, AEAD secret boxes, Shamir secret sharing and random shuffling. Runs on Nodejs, ESM, CommonJS and the browser.
  • :octocat: castore - Typescript library to easily implement Event Sourcing in your application

Video Courses

πŸ†“ Free Courses

πŸ’΅ Paid Courses

Tutorials

Roadmap

Badges

Social

  • @typescriptlang - Official Typescript Twitter
  • @angularjs - Official Angularjs Twitter using Typescript Since 2.0
  • @jntrnr - Typescript Program Manager at Microsoft
  • @ahejlsberg - Technical Fellow at Microsoft involved with the Typescript project