# gibbok/typescript-book

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gibbok-typescript-book).**

10,317 stars · 609 forks · JavaScript · NOASSERTION

## Links

- GitHub: https://github.com/gibbok/typescript-book
- Homepage: https://gibbok.github.io/typescript-book/
- awesome-repositories: https://awesome-repositories.com/repository/gibbok-typescript-book.md

## Topics

`book` `free` `javascript` `javascript-book` `learn-typescript` `typescript` `typescript-book` `typescript-guide` `typescript-guidebook` `typescript-language` `typescript-learning` `typescript-tutorials`

## Description

The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.

## Tags

### Education & Learning Resources

- [Comprehensive TypeScript References](https://awesome-repositories.com/f/education-learning-resources/typescript-fundamentals/comprehensive-typescript-references.md) — Access a comprehensive TypeScript reference book at no cost, with community contributions and regular updates. ([source](https://gibbok.github.io/typescript-book/book/the-concise-typescript-book/))

### Part of an Awesome List

- [Data Modeling Types](https://awesome-repositories.com/f/awesome-lists/learning/applied-type-theory/data-modeling-types.md) — Teaches how to model data using union and intersection types for complex structures. ([source](https://cdn.jsdelivr.net/gh/gibbok/typescript-book@main/README.md))
- [IDE and Editor Support](https://awesome-repositories.com/f/awesome-lists/devtools/ide-and-editor-support.md) — Receive live error reports, code completions, navigation hints, and refactoring suggestions through a language server connected to your editor. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))

### Data & Databases

- [Readonly Property Declarations](https://awesome-repositories.com/f/data-databases/crud-operations/readonly-column-markings/readonly-property-detection/readonly-property-declarations.md) — Provides a concise guide to declaring readonly properties in TypeScript, a core language feature. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Enum Definitions](https://awesome-repositories.com/f/data-databases/enum-definitions.md) — Teaches how to define enums as named constant values in TypeScript. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Optional Property Declarations](https://awesome-repositories.com/f/data-databases/object-property-accessors/collection-property-modifiers/graph-property-modifiers/optional-property-access/optional-property-declarations.md) — Teaches how to declare optional properties in TypeScript interfaces and types. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Optional Property Declarations](https://awesome-repositories.com/f/data-databases/object-property-accessors/collection-property-modifiers/graph-property-modifiers/optional-property-access/optional-property-declarations/optional-property-declarations.md) — Teaches how to mark TypeScript object properties as optional or readonly for stricter data contracts. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))
- [Computed Enum Members](https://awesome-repositories.com/f/data-databases/enum-definitions/computed-enum-members.md) — Describes a TypeScript feature for computing enum member values at runtime. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Const](https://awesome-repositories.com/f/data-databases/enum-definitions/const.md) — Documents the const enum feature for compile-time inlining of enum values. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))

### Development Tools & Productivity

- [JavaScript to TypeScript Migration](https://awesome-repositories.com/f/development-tools-productivity/javascript-and-typescript-build-systems/javascript-to-typescript-migration.md) — Introduces TypeScript incrementally into an existing JavaScript project by allowing mixed files and disabling strict checks. ([source](https://github.com/gibbok/typescript-book/blob/main/README-zh_CN.md))
- [Compiler Configurations](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-configuration-systems/compiler-configurations.md) — Teaches how to configure the TypeScript compiler using tsconfig.json for build control. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))
- [Language Server Integrations](https://awesome-repositories.com/f/development-tools-productivity/language-server-integrations.md) — Get real-time code assistance like error reporting, auto-completion, go-to-definition, and refactoring through a language server integrated with your editor. ([source](https://cdn.jsdelivr.net/gh/gibbok/typescript-book@main/README.md))
- [Language Servers](https://awesome-repositories.com/f/development-tools-productivity/language-servers.md) — Provides IDE features like error reporting, auto-completion, and go-to-definition through a language server. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))

### DevOps & Infrastructure

- [TypeScript Compilation Utilities](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-tooling/code-transformation-engines/typescript-compilation-utilities.md) — Explains how to transform TypeScript source code into standard JavaScript using the compiler. ([source](https://github.com/gibbok/typescript-book/blob/main/README-it_IT.md))

### Programming Languages & Runtimes

- [Automatic Type Inferences](https://awesome-repositories.com/f/programming-languages-runtimes/automatic-type-inferences.md) — Teaches how TypeScript automatically infers variable types from their initial values. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Literal Type Inferences](https://awesome-repositories.com/f/programming-languages-runtimes/automatic-type-inferences/literal-type-inferences.md) — Teaches how TypeScript infers literal types for const declarations to prevent type widening.
- [Widening Mechanisms](https://awesome-repositories.com/f/programming-languages-runtimes/automatic-type-inferences/literal-type-inferences/widening-controls/widening-mechanisms.md) — Explains how TypeScript widens literal types to broader types when no annotation is provided. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Erasure Mechanisms](https://awesome-repositories.com/f/programming-languages-runtimes/compile-time-type-inspection/erasure-mechanisms.md) — Documents how TypeScript erases all type annotations during compilation to produce plain JavaScript.
- [Type Compositions](https://awesome-repositories.com/f/programming-languages-runtimes/generic-types/type-compositions.md) — Teaches how to combine types using unions, intersections, generics, and mapped types. ([source](https://gibbok.github.io/typescript-book](https://gibbok.github.io/typescript-book))
- [Index Signatures](https://awesome-repositories.com/f/programming-languages-runtimes/index-signatures.md) — Teaches how to define index signatures for objects with dynamic keys. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Type and Interface Extensions](https://awesome-repositories.com/f/programming-languages-runtimes/interface-and-any-types/type-and-interface-extensions.md) — Provides a comprehensive guide to extending and composing TypeScript types and interfaces. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))
- [JavaScript Transpilers](https://awesome-repositories.com/f/programming-languages-runtimes/javascript-transpilers.md) — Compiles modern JavaScript and TypeScript features down to an older ECMAScript version for broader runtime compatibility. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Discriminated Unions](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/language-extensions/union-types/discriminated-unions.md) — Teaches how to use discriminated unions with literal tag properties for type narrowing. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Excess Property Checks](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/object-property-descriptors/property-definers/excess-property-checks.md) — Flags object literals that contain properties not defined in the target type during assignment or argument passing. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Ambient Type Declarations](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/ambient-type-declarations.md) — Explains how to supply type definitions for existing JavaScript code via separate declaration files.
- [Variable Type Declarations](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations.md) — Provides explicit type annotations for variables, parameters, and return values to enforce type safety. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Type Narrowing](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/type-narrowing.md) — Teaches how TypeScript narrows variable types within conditional branches based on runtime checks.
- [Custom Type Guards](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/type-narrowing/custom-type-guards.md) — Provides a dedicated section on writing custom type guards with type predicates for manual type narrowing. ([source](https://github.com/gibbok/typescript-book/blob/main/README-zh_CN.md))
- [Type System Studies](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/type-systems/type-checking-disciplines/statically-typed-languages/type-system-studies.md) — Explains the complete TypeScript type system from basics to advanced concepts for developers. ([source](https://gibbok.github.io/typescript-book/))
- [Structural Type Equivalences](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/structural-type-equivalences.md) — Defines type equivalence based on data shape rather than explicit names. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))
- [Statically Typed Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/statically-typed-compilers.md) — Detects common programming mistakes and potential runtime errors during compilation by enforcing static type constraints. ([source](https://cdn.jsdelivr.net/gh/gibbok/typescript-book@main/README.md))
- [Literal Type Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/string-literal-type-manipulations/string-literal-union-type-definitions/literal-type-definitions.md) — Teaches how to define literal types that accept only exact values. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Type Annotations](https://awesome-repositories.com/f/programming-languages-runtimes/type-annotations/type-annotations.md) — Provides comprehensive guidance on adding type annotations to variables, parameters, and return values. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))
- [Recursive Type Compatibility](https://awesome-repositories.com/f/programming-languages-runtimes/type-relationship-verification/type-checking/recursive-type-compatibility.md) — Compares types at any nesting level, ensuring a source type has at least the same members as a target type. ([source](https://github.com/gibbok/typescript-book/blob/main/README-zh_CN.md))
- [User-Defined Types](https://awesome-repositories.com/f/programming-languages-runtimes/user-defined-types.md) — Teaches how to define the shape and constraints of data using static types to catch errors before runtime. ([source](https://gibbok.github.io/typescript-book](https://gibbok.github.io/typescript-book))
- [Object Type Composition](https://awesome-repositories.com/f/programming-languages-runtimes/user-defined-types/object-type-composition.md) — Teaches how to define and compose object types using interfaces and intersections. ([source](https://cdn.jsdelivr.net/gh/gibbok/typescript-book@main/README.md))
- [Widening Controls](https://awesome-repositories.com/f/programming-languages-runtimes/automatic-type-inferences/literal-type-inferences/widening-controls.md) — Provides techniques to prevent the compiler from expanding literal types to general types. ([source](https://github.com/gibbok/typescript-book/blob/main/README-zh_CN.md))
- [TypeScript Compiler Configurations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-toolchains/typescript-compiler-configurations.md) — Explains how to control TypeScript compiler behavior through configuration files. ([source](https://github.com/gibbok/typescript-book/blob/main/README-zh_CN.md))
- [Const Generic Modifiers](https://awesome-repositories.com/f/programming-languages-runtimes/generic-types/generic-type-constraints/const-generic-modifiers.md) — Teaches how to use the const modifier on generics for precise literal type inference. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [JavaScript Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/javascript-compilers.md) — Documents how TypeScript compiles modern ES6 and ES7 syntax into compatible JavaScript. ([source](https://github.com/gibbok/typescript-book/blob/main/README-it_IT.md))
- [Const Variable Narrowing](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/type-narrowing/const-variable-narrowing.md) — Teaches how const declarations enable literal type inference and prevent widening. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Switch-True Narrowing](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/type-narrowing/switch-true-narrowing.md) — Teaches the switch-true pattern for narrowing types in complex conditional logic. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [TypeScript Resources](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/web-and-scripting-environments/typescript-resources.md) — A guide explaining how TypeScript's language service provides real-time code assistance including error reporting and auto-completion in editors.
- [Migration Guides](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/web-and-scripting-environments/typescript-resources/migration-guides.md) — Provides a practical handbook for gradually introducing TypeScript into JavaScript projects.
- [Tagged Unions](https://awesome-repositories.com/f/programming-languages-runtimes/tagged-unions.md) — Covers tagged unions as a core TypeScript feature for type-safe data modeling. ([source](https://github.com/gibbok/typescript-book/blob/main/README-zh_CN.md))

### Security & Cryptography

- [Static Type Error Detectors](https://awesome-repositories.com/f/security-cryptography/injection-prevention/reliability-prevention-patterns/logical-error-prevention/static-type-error-detectors.md) — Uses static type checking to catch common programming mistakes before the program executes. ([source](https://github.com/gibbok/typescript-book/blob/main/README-it_IT.md))

### Software Engineering & Architecture

- [TypeScript Advanced Type Features](https://awesome-repositories.com/f/software-engineering-architecture/advanced-type-systems/typescript-advanced-type-features.md) — Teaches complex capabilities including generics, conditional types, and mapped types with practical examples. ([source](https://gibbok.github.io/typescript-book/))
- [Functional Type Predicates](https://awesome-repositories.com/f/software-engineering-architecture/functional-type-predicates.md) — Teaches how to write custom type guard functions with type predicates for narrowing. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Enum Definitions](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/named-constants/enum-definitions.md) — Defines named constant sets with sequential or custom values, supporting reverse mapping. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))
- [Type Extension Mechanisms](https://awesome-repositories.com/f/software-engineering-architecture/type-analysis-tools/intersection-type-engines/type-extension-mechanisms.md) — Teaches how to extend types and interfaces to reuse and compose type definitions. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))
- [Structural Type Compatibility Rules](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/typescript-type-checking-instruction/structural-type-compatibility-rules.md) — Explains how TypeScript compares types by their shape and members rather than explicit names.
- [Type System Tutorials](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/typescript-type-checking-instruction/type-system-tutorials.md) — Teaches the TypeScript type system including static types, unions, intersections, and generics.
- [Gradual Typing Adoption](https://awesome-repositories.com/f/software-engineering-architecture/static-type-checkers/python-type-checkers/gradual-typing-adoption.md) — Covers strategies for incrementally adding TypeScript to existing JavaScript projects.

### Testing & Quality Assurance

- [Type Assertions](https://awesome-repositories.com/f/testing-quality-assurance/type-assertions.md) — Overrides the compiler's inferred type for a value using a keyword when the developer has more information. ([source](https://github.com/gibbok/typescript-book/blob/main/README-pt_BR.md))

### Web Development

- [Intersection Types](https://awesome-repositories.com/f/web-development/graphql-apis/type-definitions/union-types/intersection-types.md) — Teaches how to create union and intersection types, a fundamental TypeScript capability. ([source](https://github.com/gibbok/typescript-book/blob/main/README-sv_SE.md))
- [TypeScript](https://awesome-repositories.com/f/web-development/typescript.md) — Using TypeScript's language service for real-time code assistance including error reporting, auto-completion, and navigation in editors.
