URL: https://basarat.gitbook.io/typescript/llms.txt
# TypeScript Deep Dive
## TypeScript Deep Dive
- [README](https://basarat.gitbook.io/typescript/readme.md)
- [Getting Started](https://basarat.gitbook.io/typescript/getting-started.md)
- [Why TypeScript](https://basarat.gitbook.io/typescript/getting-started/why-typescript.md)
- [JavaScript](https://basarat.gitbook.io/typescript/recap.md)
- [Equality](https://basarat.gitbook.io/typescript/recap/equality.md)
- [References](https://basarat.gitbook.io/typescript/recap/references.md)
- [Null vs. Undefined](https://basarat.gitbook.io/typescript/recap/null-undefined.md)
- [this](https://basarat.gitbook.io/typescript/recap/this.md)
- [Closure](https://basarat.gitbook.io/typescript/recap/closure.md)
- [Number](https://basarat.gitbook.io/typescript/recap/number.md)
- [Truthy](https://basarat.gitbook.io/typescript/recap/truthy.md)
- [Future JavaScript Now](https://basarat.gitbook.io/typescript/future-javascript.md)
- [Classes](https://basarat.gitbook.io/typescript/future-javascript/classes.md)
- [Classes Emit](https://basarat.gitbook.io/typescript/future-javascript/classes/classes-emit.md)
- [Arrow Functions](https://basarat.gitbook.io/typescript/future-javascript/arrow-functions.md)
- [Rest Parameters](https://basarat.gitbook.io/typescript/future-javascript/rest-parameters.md)
- [let](https://basarat.gitbook.io/typescript/future-javascript/let.md)
- [const](https://basarat.gitbook.io/typescript/future-javascript/const.md)
- [Destructuring](https://basarat.gitbook.io/typescript/future-javascript/destructuring.md)
- [Spread Operator](https://basarat.gitbook.io/typescript/future-javascript/spread-operator.md)
- [for...of](https://basarat.gitbook.io/typescript/future-javascript/for...of.md)
- [Iterators](https://basarat.gitbook.io/typescript/future-javascript/iterators.md)
- [Template Strings](https://basarat.gitbook.io/typescript/future-javascript/template-strings.md)
- [Promise](https://basarat.gitbook.io/typescript/future-javascript/promise.md)
- [Generators](https://basarat.gitbook.io/typescript/future-javascript/generators.md)
- [Async Await](https://basarat.gitbook.io/typescript/future-javascript/async-await.md)
- [Project](https://basarat.gitbook.io/typescript/project.md)
- [Compilation Context](https://basarat.gitbook.io/typescript/project/compilation-context.md)
- [tsconfig.json](https://basarat.gitbook.io/typescript/project/compilation-context/tsconfig.md)
- [Which Files?](https://basarat.gitbook.io/typescript/project/compilation-context/files.md)
- [Declaration Spaces](https://basarat.gitbook.io/typescript/project/declarationspaces.md)
- [Modules](https://basarat.gitbook.io/typescript/project/modules.md)
- [File Module Details](https://basarat.gitbook.io/typescript/project/modules/external-modules.md)
- [global.d.ts](https://basarat.gitbook.io/typescript/project/modules/globals.md)
- [Namespaces](https://basarat.gitbook.io/typescript/project/namespaces.md)
- [Dynamic Import Expressions](https://basarat.gitbook.io/typescript/project/dynamic-import-expressions.md)
- [Node.js QuickStart](https://basarat.gitbook.io/typescript/nodejs.md)
- [Browser QuickStart](https://basarat.gitbook.io/typescript/browser.md)
- [Library QuickStart](https://basarat.gitbook.io/typescript/library.md)
- [TypeScript's Type System](https://basarat.gitbook.io/typescript/type-system.md)
- [JS Migration Guide](https://basarat.gitbook.io/typescript/type-system/migrating.md)
- [@types](https://basarat.gitbook.io/typescript/type-system/types.md)
- [Ambient Declarations](https://basarat.gitbook.io/typescript/type-system/intro.md)
- [Declaration Files](https://basarat.gitbook.io/typescript/type-system/intro/d.ts.md)
- [Variables](https://basarat.gitbook.io/typescript/type-system/intro/variables.md)
- [Interfaces](https://basarat.gitbook.io/typescript/type-system/interfaces.md)
- [Enums](https://basarat.gitbook.io/typescript/type-system/enums.md)
- [lib.d.ts](https://basarat.gitbook.io/typescript/type-system/lib.d.ts.md)
- [Functions](https://basarat.gitbook.io/typescript/type-system/functions.md)
- [Callable](https://basarat.gitbook.io/typescript/type-system/callable.md)
- [Type Assertion](https://basarat.gitbook.io/typescript/type-system/type-assertion.md)
- [Freshness](https://basarat.gitbook.io/typescript/type-system/freshness.md)
- [Type Guard](https://basarat.gitbook.io/typescript/type-system/typeguard.md)
- [Literal Types](https://basarat.gitbook.io/typescript/type-system/literal-types.md)
- [Readonly](https://basarat.gitbook.io/typescript/type-system/readonly.md)
- [Generics](https://basarat.gitbook.io/typescript/type-system/generics.md)
- [Type Inference](https://basarat.gitbook.io/typescript/type-system/type-inference.md)
- [Type Compatibility](https://basarat.gitbook.io/typescript/type-system/type-compatibility.md)
- [Never Type](https://basarat.gitbook.io/typescript/type-system/never.md)
- [Discriminated Unions](https://basarat.gitbook.io/typescript/type-system/discriminated-unions.md)
- [Index Signatures](https://basarat.gitbook.io/typescript/type-system/index-signatures.md)
- [Moving Types](https://basarat.gitbook.io/typescript/type-system/moving-types.md)
- [Exception Handling](https://basarat.gitbook.io/typescript/type-system/exceptions.md)
- [Mixins](https://basarat.gitbook.io/typescript/type-system/mixins.md)
- [JSX](https://basarat.gitbook.io/typescript/tsx.md)
- [React](https://basarat.gitbook.io/typescript/tsx/react.md)
- [Non React JSX](https://basarat.gitbook.io/typescript/tsx/others.md)
- [Options](https://basarat.gitbook.io/typescript/intro.md)
- [noImplicitAny](https://basarat.gitbook.io/typescript/intro/noimplicitany.md)
- [strictNullChecks](https://basarat.gitbook.io/typescript/intro/strictnullchecks.md)
- [Errors in TypeScript](https://basarat.gitbook.io/typescript/main.md)
- [Interpreting Errors](https://basarat.gitbook.io/typescript/main/interpreting-errors.md)
- [Common Errors](https://basarat.gitbook.io/typescript/main/common-errors.md)
- [NPM](https://basarat.gitbook.io/typescript/index.md)
- [Testing](https://basarat.gitbook.io/typescript/intro-1.md)
- [Jest](https://basarat.gitbook.io/typescript/intro-1/jest.md)
- [Cypress](https://basarat.gitbook.io/typescript/intro-1/cypress.md)
- [Tools](https://basarat.gitbook.io/typescript/intro-2.md)
- [Prettier](https://basarat.gitbook.io/typescript/intro-2/prettier.md)
- [Husky](https://basarat.gitbook.io/typescript/intro-2/husky.md)
- [ESLint](https://basarat.gitbook.io/typescript/intro-2/eslint.md)
- [Changelog](https://basarat.gitbook.io/typescript/intro-2/changelog.md)
- [TIPs](https://basarat.gitbook.io/typescript/main-1.md)
- [String Based Enums](https://basarat.gitbook.io/typescript/main-1/stringenums.md)
- [Nominal Typing](https://basarat.gitbook.io/typescript/main-1/nominaltyping.md)
- [Stateful Functions](https://basarat.gitbook.io/typescript/main-1/statefulfunctions.md)
- [Currying](https://basarat.gitbook.io/typescript/main-1/currying.md)
- [Type Instantiation](https://basarat.gitbook.io/typescript/main-1/typeinstantiation.md)
- [Lazy Object Literal Initialization](https://basarat.gitbook.io/typescript/main-1/lazyobjectliteralinitialization.md)
- [Classes are Useful](https://basarat.gitbook.io/typescript/main-1/classesareuseful.md)
- [Avoid Export Default](https://basarat.gitbook.io/typescript/main-1/defaultisbad.md)
- [Limit Property Setters](https://basarat.gitbook.io/typescript/main-1/propertysetters.md)
- [outFile caution](https://basarat.gitbook.io/typescript/main-1/outfile.md)
- [JQuery tips](https://basarat.gitbook.io/typescript/main-1/jquery.md)
- [static constructors](https://basarat.gitbook.io/typescript/main-1/staticconstructor.md)
- [singleton pattern](https://basarat.gitbook.io/typescript/main-1/singleton.md)
- [Function parameters](https://basarat.gitbook.io/typescript/main-1/functionparameters.md)
- [Build Toggles](https://basarat.gitbook.io/typescript/main-1/build-toggles.md)
- [Barrel](https://basarat.gitbook.io/typescript/main-1/barrel.md)
- [Create Arrays](https://basarat.gitbook.io/typescript/main-1/create-arrays.md)
- [Typesafe Event Emitter](https://basarat.gitbook.io/typescript/main-1/typed-event.md)
- [StyleGuide](https://basarat.gitbook.io/typescript/styleguide.md)
- [TypeScript Compiler Internals](https://basarat.gitbook.io/typescript/overview.md)
- [Program](https://basarat.gitbook.io/typescript/overview/program.md)
- [AST](https://basarat.gitbook.io/typescript/overview/ast.md)
- [TIP: Visit Children](https://basarat.gitbook.io/typescript/overview/ast/ast-tip-children.md)
- [TIP: SyntaxKind enum](https://basarat.gitbook.io/typescript/overview/ast/ast-tip-syntaxkind.md)
- [Trivia](https://basarat.gitbook.io/typescript/overview/ast/ast-trivia.md)
- [Scanner](https://basarat.gitbook.io/typescript/overview/scanner.md)
- [Parser](https://basarat.gitbook.io/typescript/overview/parser.md)
- [Parser Functions](https://basarat.gitbook.io/typescript/overview/parser/parser-functions.md)
- [Binder](https://basarat.gitbook.io/typescript/overview/binder.md)
- [Binder Functions](https://basarat.gitbook.io/typescript/overview/binder/binder-functions.md)
- [Binder Declarations](https://basarat.gitbook.io/typescript/overview/binder/binder-declarations.md)
- [Binder Container](https://basarat.gitbook.io/typescript/overview/binder/binder-container.md)
- [Binder SymbolTable](https://basarat.gitbook.io/typescript/overview/binder/binder-symboltable.md)
- [Binder Error Reporting](https://basarat.gitbook.io/typescript/overview/binder/binder-diagnostics.md)
- [Checker](https://basarat.gitbook.io/typescript/overview/checker.md)
- [Checker Diagnostics](https://basarat.gitbook.io/typescript/overview/checker/checker-global.md)
- [Checker Error Reporting](https://basarat.gitbook.io/typescript/overview/checker/checker-diagnostics.md)
- [Emitter](https://basarat.gitbook.io/typescript/overview/emitter.md)
- [Emitter Functions](https://basarat.gitbook.io/typescript/overview/emitter/emitter-functions.md)
- [Emitter SourceMaps](https://basarat.gitbook.io/typescript/overview/emitter/emitter-sourcemaps.md)
- [Contributing](https://basarat.gitbook.io/typescript/overview/contributing.md)
---
# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.
## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://basarat.gitbook.io/typescript/readme.md?ask=