This page documents how to file effective bug reports for the TypeScript compiler. Bug reports help the TypeScript team identify and fix defects in the compiler, language service, and related tooling.
For feature requests, see Feature Requests. For issues with DOM/WebWorker type definitions, see Library Definition Issues. For module resolution problems, see Module Resolution Issues.
The microsoft/TypeScript repository is currently in maintenance mode. TypeScript 6.0 is the final JavaScript-based release. Development has transitioned to the Go-based rewrite at microsoft/typescript-go.
Accepted Bug Categories: Only bugs meeting these strict criteria will be addressed in this repository:
Sources: CONTRIBUTING.md5-6 README.md31-39 AGENTS.md1-7
Bug reports in the TypeScript repository track reproducible defects in TypeScript's behavior. A bug report must describe:
Sources: CONTRIBUTING.md56-62 README.md42
The TypeScript FAQ answers many common questions about TypeScript behavior. Issues asking questions already answered in the FAQ will be closed without elaboration.
Many long-standing behaviors are documented in the FAQ's "Common Bugs That Aren't Bugs" section. For example, narrowing behaviors in callbacks are intentional and documented in specific templates to prevent duplicate reports.
Sources: CONTRIBUTING.md33-37 .github/ISSUE_TEMPLATE/bug_report.yml31 .github/ISSUE_TEMPLATE/types-not-correct-in-with-callback.md1-11
Before creating a new issue, search existing issues thoroughly:
Search strategies:
Sources: CONTRIBUTING.md39-49 .github/ISSUE_TEMPLATE/bug_report.yml7
The issue tracker is for bugs and suggestions. If you have a question, use:
Sources: CONTRIBUTING.md50-54 README.md44-46
Bug reports use a structured YAML template defined in .github/ISSUE_TEMPLATE/bug_report.yml.
List keywords used when searching. This helps others find the issue. Examples: "function inference any", "jsx attribute spread", "ts2822".
Sources: .github/ISSUE_TEMPLATE/bug_report.yml11-23
Specify when the bug started. Use the line that best applies:
X and Y.Z.Try the nightly build (npm install typescript@next) or the Playground to see if it is already fixed. For regressions, use every-ts to find the specific change.
Sources: .github/ISSUE_TEMPLATE/bug_report.yml25-46 CONTRIBUTING.md59-63
A link to a TypeScript Playground "Share" link showing the behavior. The Playground supports versions back to 3.3. Repos are a last resort as they are slower to investigate.
Sources: .github/ISSUE_TEMPLATE/bug_report.yml48-59
The code and the Playground code should be identical.
Sources: .github/ISSUE_TEMPLATE/bug_report.yml61-85
Module resolution is complex and often a misconfiguration. Before reporting, use Are The Types Wrong?. Reports require:
tsc --showConfig.tsc --traceResolution.package.json for both importing and target modules.Sources: .github/ISSUE_TEMPLATE/module_resolution.yml1-104
For issues in lib.d.ts (e.g., lib.es6.d.ts):
lib setting in tsconfig.json is correct (e.g., lib: ["es2020"]).Sources: .github/ISSUE_TEMPLATE/lib_change.yml1-57
Due to the maintenance mode, the project does not accept bulk, agent-driven contributions.
Sources: CONTRIBUTING.md7-30 AGENTS.md9-27
Refresh this wiki