> Markdown version of [/videos/327-do-typescript-without-typescript?t=904](https://www.wearedevelopers.com/videos/327-do-typescript-without-typescript?t=904). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Do TypeScript without TypeScript Want TypeScript's safety without the tedious transpilation step? Learn how to achieve robust type checking and fast iteration loops in plain JavaScript using JSDoc annotations. - **Speakers:** Simone Sanfratello - **Event:** JavaScript Congress - **Published:** November 25, 2021 - **Duration:** 43:27 - **URL:** https://www.wearedevelopers.com/videos/327-do-typescript-without-typescript ## Summary TypeScript has become a staple for developers seeking to add explicit type safety, robust API design, and IDE autocompletion to their JavaScript projects. By catching unexpected errors early and clearly modeling object shapes, explicit typing provides substantial benefits for team scalability and application integrity. However, TypeScript acts as a parallel language superset, bringing along steep developer-experience tradeoffs: a lengthy transpilation step, complex `tsconfig` settings, and rigid compiler restrictions that sometimes clash with valid, dynamic JavaScript patterns. A viable, lightweight alternative is to utilize the TypeScript compiler solely as a static analysis tool alongside plain JavaScript and JSDoc annotations. By decoupling execution from type validation via configuration flags like `allowJs` and `checkJs`, developers can achieve reliable safety checks without enduring a tedious build step. Instead of transpiling alien syntax, the TypeScript compiler seamlessly reads JSDoc structures to deduct types, validate codebase integrity, and even produce external declarative files (`.d.ts`) for consumers through options like `emitDeclarationOnly`. This flexible workflow minimizes tooling complexity and enables seamless, incremental adoption within legacy codebases. It proves particularly valuable for backend Node.js projects and standard libraries, where developers demand the fast iteration loops of raw JavaScript but still require reliable type signatures for function bounds or entity structures. By shifting type checking to standalone development tasks—such as CI/CD pipelines or native IDE extensions—teams can maintain agile testing cadences, avoiding rigid TypeScript overhead while securing the exact same structural predictability. **Keywords:** jsdoc type annotations, typescript without transpilation, javascript static analysis, tsconfig configuration, allowjs and checkjs flags, emitdeclarationonly, incremental typescript adoption, decoupled type validation, ide autocompletion, node.js backend type safety, gradual codebase typing, runtime error prevention, typescript compiler toolchain, input validation practices, legacy codebase migration ## Chapters 1. **History of static type checking in JavaScript** (00:24) — How tools like JSLint, Closure Compiler, and TypeScript evolved to handle code integrity constraints. 1. **The purpose of explicit types in software** (02:03) — Why strong typing prevents unexpected runtime casting and helps developers understand complex data structures. 1. **Validating inputs and testing application logic** (05:15) — How input validation and testing layers catch complex runtime behaviors that static typing often misses. 1. **Misconceptions about TypeScript safety capabilities** (07:56) — Recognizing that static models prevent trivial bugs but cannot protect against business logic flaws or security vulnerabilities. 1. **Evaluating TypeScript benefits and project drawbacks** (08:57) — How adopting modern language servers provides IDE support but introduces transpilation wait times and rigid compiler configurations. 1. **Gaining TypeScript benefits using JSDoc alternatives** (15:04) — How combining standard comments with dedicated language extensions separates type checking from code execution without compilation overhead. 1. **Configuring projects for JSDoc type validation** (18:00) — Setting up standard configuration files to allow legacy code, enforce strict evaluation, and emit dedicated type interfaces. 1. **Applying JSDoc types to JavaScript logic** (20:57) — Adding model annotations to script functions to trigger editor warnings while maintaining immediate application execution speeds. 1. **Addressing JSDoc limitations and testing strategy** (29:31) — Addressing community questions around documentation constraints like module exports, legacy variable handling, and skipping evaluations on test suites. ## Related Moments - [The origins and early problems solved by TypeScript](https://www.wearedevelopers.com/videos/100061-typescript-features-that-changed-the-game) (from "TypeScript Features That Changed the Game") - [Evaluating benefits and trade-offs of using TypeScript](https://www.wearedevelopers.com/videos/646-4-steps-from-javascript-to-typescript) (from "4 Steps from JavaScript to TypeScript") - [Exploring the benefits of type safety and TypeScript migration](https://www.wearedevelopers.com/videos/1302-wearedevelopers-live-dishonest-charts-britcss-debugging-with-ai) (from "WeAreDevelopers LIVE - Dishonest Charts, BritCSS, Debugging with AI") - [Deciding when to adopt or avoid TypeScript](https://www.wearedevelopers.com/videos/127-vuejs-and-typescript-working-together-like-peanut-butter-and-jelly) (from "Vuejs and TypeScript- Working Together like Peanut Butter and Jelly") - [The popularity and benefits of TypeScript](https://www.wearedevelopers.com/videos/1580-end-to-end-typescript-completing-the-modern-development-stack) (from "End-to-End TypeScript: Completing the Modern Development Stack") - [Safely migrating legacy JavaScript codebases to strict TypeScript](https://www.wearedevelopers.com/videos/1306-wearedevelopers-live-whats-nuxt-and-next-for-app-development-20-years-ajax-and-more) (from "WeAreDevelopers LIVE - Whats Nuxt and Next for app development, 20 years AJAX and more") ## Related Articles - [Exploring TypeScript: Benefits for Large-Scale JavaScript Projects](https://www.wearedevelopers.com/magazine/554-exploring-typescript-benefits-for-large-scale-javascript-projects) - [What is TypeScript?](https://www.wearedevelopers.com/magazine/47-what-is-typescript) - [Dev Digest 159: AI Pipelines, 10x Faster TypeScript, How to Interview](https://www.wearedevelopers.com/magazine/563-dev-digest-159-ai-pipelines-10x-faster-typescript-how-to-interview) - [Dev Digest 136 - No JS(on) of mine](https://www.wearedevelopers.com/magazine/482-dev-digest-136-no-js-on-of-mine) ## Related Jobs - [Senior Software Engineer](https://www.wearedevelopers.com/jobs/ext/15942-senior-software-engineer) at **GitHub** - [Software Engineer](https://www.wearedevelopers.com/jobs/ext/1304673-software-engineer) at **Bitpanda** - [Agile Full Stack Engineer](https://www.wearedevelopers.com/jobs/48325-agile-full-stack-engineer) at **synava GmbH** - [Software Engineer Frontend (all genders welcome) in the field of Water Line Integrity Solutions](https://www.wearedevelopers.com/jobs/ext/127888-software-engineer-frontend-all-genders-welcome-in-the-field-of-water-line-integrity-solutions) at **Rosenxt Group** - [Software Engineer, React (Bitpanda Broker)](https://www.wearedevelopers.com/jobs/ext/1444421-software-engineer-react-bitpanda-broker) at **Bitpanda** - [Software Engineer, React & Angular (Broker Web Platform](https://www.wearedevelopers.com/jobs/ext/1558399-software-engineer-react-angular-broker-web-platform) at **Bitpanda**