# microsoft/typescript

**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/microsoft-typescript).**

109,271 stars · 13,437 forks · TypeScript · Apache-2.0

## Links

- GitHub: https://github.com/microsoft/TypeScript
- Homepage: https://www.typescriptlang.org
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-typescript.md

## Topics

`javascript` `language` `typechecker` `typescript`

## Description

TypeScript is a language that extends standard syntax by adding a static type system. It identifies potential runtime errors by analyzing the behaviors and capabilities of values during the compilation process. The language supports object-oriented structures, including classes with inheritance and member visibility control, as well as flexible function definitions that utilize generics, overloads, and parameter destructuring.

The project provides a compiler that manages the build lifecycle through a command-line interface, offering configurable options for module resolution, code generation, and file watching. It includes a suite of utility types for transforming object structures, such as picking, omitting, or modifying property requirements. Developers can organize code using various module standards, including support for both legacy and modern formats.

Comprehensive documentation is available to support the development process, ranging from a detailed handbook and syntax cheat sheets to specific guides for authoring declaration files. These resources assist in integrating type checking into existing codebases and provide guidance on modeling modules for interoperability.

## Tags

### Programming Languages & Runtimes

- [Conditional Types](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/type-definition-systems/conditional-types.md) — Evaluates logical constraints to dynamically select between different type definitions during compilation. ([source](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html))
- [Partial Type Construction](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/utility-types/partial-type-construction.md) — Transforms existing object structures by marking every property as optional for more flexible data handling. ([source](https://www.typescriptlang.org/docs/handbook/utility-types.html))
- [Abstract Classes](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/type-definition-systems/abstract-classes.md) — Defines base templates that enforce implementation of specific members while preventing direct instantiation of the class. ([source](https://www.typescriptlang.org/docs/handbook/2/classes.html))
- [Declaration Files](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/type-definition-systems/declaration-files.md) — Standardizes the structural mapping of external codebases to enable static analysis and type checking. ([source](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html))

### Part of an Awesome List

- [Compilers and Interpreters](https://awesome-repositories.com/f/awesome-lists/devtools/compilers-and-interpreters.md) — TypeScript compiler.
- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Superset of JavaScript with static type checking.
- [TypeScript Resources](https://awesome-repositories.com/f/awesome-lists/devtools/typescript-resources.md) — Official repository for the TypeScript language.

### Development Tools & Productivity

- [Build Automation](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/build-task-automation/build-automation.md) — Automates incremental compilation, dependency management, and output directory cleanup for complex development workflows. ([source](https://www.typescriptlang.org/docs/handbook/compiler-options.html))
