Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ESLint
  3. TypeLint

TypeLint

MITJavaScript

An ESLint plugin for optional static type checking in JavaScript using JSDoc and existing data schemas.

GitHubGitHub
172 stars5 forks0 contributors

What is TypeLint?

TypeLint is an ESLint plugin that enables optional static type checking in JavaScript projects using JSDoc annotations. It helps developers catch undefined property errors by leveraging existing data schemas like Redux state, Swagger definitions, or JSON Schema without requiring transpilation. The plugin integrates seamlessly into ESLint workflows, providing type validation where data structures are already described.

Target Audience

JavaScript developers working on projects with defined data schemas—such as Redux-based React apps, APIs with Swagger documentation, or JSON Schema-driven databases—who want lightweight type safety without adopting TypeScript or Flow.

Value Proposition

Developers choose TypeLint because it offers optional, non-intrusive type checking that works with existing JSDoc comments and data schemas, avoiding the overhead of transpilers. Its unique integration with tools like Redux and Swagger makes it ideal for projects where data structures are already documented.

Overview

TypeLint is an ESlint plugin for optional static typing in JavaScript, based on JSDoc.

Use Cases

Best For

  • Adding optional type checking to existing JavaScript projects without transpilation
  • Catching undefined property errors in Redux state access
  • Validating API data against Swagger or JSON Schema definitions
  • Enforcing type consistency in JSDoc-annotated codebases
  • Improving IDE autocomplete for custom data types in WebStorm/PHPStorm
  • Lightweight type safety for projects with documented data schemas

Not Ideal For

  • Projects requiring full static type systems with compilation, like those using TypeScript or Flow
  • Codebases with highly dynamic JavaScript where variables are frequently reassigned or types change often
  • Teams using IDEs other than WebStorm/PHPStorm who need built-in type autocomplete support
  • Applications relying solely on GraphQL schemas without Swagger or JSON Schema equivalents

Pros & Cons

Pros

JSDoc Standard Compliance

Uses standard JSDoc syntax compatible with Closure Compiler, making it easy to integrate with existing documentation without learning a new syntax, as shown in the supported types declarations.

Redux State Type Inference

Automatically constructs types from Redux reducer initial values to catch undefined property access errors, demonstrated by the redux option in settings that requires only the path to the root reducer.

API Schema Integration

Binds Swagger or JSON Schema definitions for type validation, allowing developers to leverage existing API documentation, with support for JSON, YAML, and JS file formats.

IDE Autocomplete for WebStorm

Provides type autocomplete in WebStorm/PHPStorm 2016 via generated schemas copied from the plugin, improving developer experience in supported environments.

Flexible Adapter System

Supports custom adapters to transform schemas between naming conventions, such as camelCase to snake_case, with built-in examples and a simple interface for extensions.

Cons

Incomplete Type Features

Missing key functionalities like handling variable reassignment and passing typed variables, as admitted in the Planned Features section, limiting its effectiveness for dynamic code.

Narrow IDE Autocomplete Support

Autocomplete is only available for WebStorm/PHPStorm 2016, requiring manual file copying, and lacks integration with popular editors like VS Code or modern IDEs.

Complex Configuration Setup

Requires detailed .eslintrc settings with specific paths for models and reducers, which can be error-prone and hard to maintain, especially in large or multi-folder projects.

Caching Accuracy Trade-offs

The useCache option improves performance but doesn't reflect changes in models until cache is cleared, forcing a choice between speed and real-time type validation.

Frequently Asked Questions

Quick Stats

Stars172
Forks5
Contributors0
Open Issues1
Last commit8 years ago
CreatedSince 2016

Tags

#developer-tools#static-typing#swagger#json-schema#type-checking#jsdoc#eslint-plugin#javascript#redux

Included in

ESLint4.7k
Auto-fetched 1 day ago

Related Projects

PutOutPutOut

🐊 Pluggable and configurable JavaScript Linter, code transformer and formatter with superpowers 💪: built-in support of js, jsx, ts, markdown, yaml, toml, json and ignore. Write declarative codemods in a simplest possible way 😏

Stars800
Forks47
Last commit6 days ago
DiffDiff

Run ESLint on your changes only

Stars211
Forks19
Last commit1 month ago
Only-WarnOnly-Warn

Downgrade errors to warnings

Stars184
Forks17
Last commit7 months ago
WokeWoke

eslint-plugin-woke is an ESLint plugin designed to help developers identify and avoid insensitive or offensive language in their codebases. It promotes diversity and inclusion by flagging terms related to racism, profanity, gender, and LGBTQ+ issues, encouraging more thoughtful coding practices. ## Key Features - **Racism Detection** — Flags racially insensitive terms and slurs in code. - **Profanity Filter** — Identifies and warns about profane language in source code. - **Gender Inclusivity** — Catches gender-biased or exclusionary terminology. - **LGBTQ+ Sensitivity** — Highlights terms that may be offensive to LGBTQ+ communities. - **Comprehensive Rule (all)** — Enables all sensitivity rules with a single configuration. ## Philosophy The plugin operates on the principle that inclusive language in code fosters a more welcoming and respectful development environment, and that automated tooling can help teams maintain these standards consistently.

Stars39
Forks2
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub