microsoft / microsoft/TypeScript

Bloomberg feedback for 6.0

オープン
#63,245 コメント 2 件 リアクション 2 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Discussion
主要言語
Go
スター
111k
フォーク
14.3k
平均マージ
2日 4時間
マージ済み PR(30日)
132

説明

### Acknowledgement

- [x] I acknowledge that issues using this template may be closed without further explanation at the maintainer's discretion.

### Comment

We evaluated the 6.0 RC releases and 6.0 is a moderate impact release for us.

| # | Change | Affects | Release notes | Packages affected | Reported as |
| - | -------------------------------------------------------------------------- | ---------------- | ------------- | ----------------- |-------------|
| 1 | Deprecation of `node` module resolution | Module Resolution| Yes | <1% | |
| 2 | Key mapping in mapped clause cause contextual types to fail | Type Checking | No | <1% | #63225 |
| 3 | Inference produces different result | Type Checking | No | <1% | #63227 |
| 4 | JS emit removes comments | Emit | No | <1% | |
| 5 | API changes hasDefaultLib removed | Type Checking | Yes | 100% | |

## Deprecation of `node` module resolution

All our projects used the `node` moduleResolution. With the release of 6.0 this was deprecated. The resolution closest to our internal module loader behavior is `bundler`.

Most of the projects did not have issue migrating, although some did due to two main causes:

1. Some import types in declarations switched to using `import('.')` instead of `import('.\index')` which we do not support
2. Some projects used declaration files for `json` files that used the extension `json.d.ts` which worked fine in node but not with bundler (and using `--allowArbitraryExtensions` requires the extension to be `d.json.ts` which we currently do not support)

However these impacted a very small number of packages.

## JS emit removes comments

Some comments above JSX elements are removed where before they were preserved. These seem like an improvement:

```ts
function Component() {
return (
// Comment is removed in 6.0


)
}
```
[Playground Link 6.0](https://www.typescriptlang.org/play/?ts=6.0.0-dev.20260311#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoTAVwDsNgIa4APACgEo4BvCuPuIjCpQmrXvwkB6SXADCuEEhrxgAZwFIQEAG5IAJnGBMAbADoADOIl8APHuDaAfDcn2nVuOwoBfIA)
[Playground Link 5.0](https://www.typescriptlang.org/play/?ts=6.0.0-dev.20260311#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoTAVwDsNgIa4APACgEo4BvCuPuIjCpQmrXvwkB6SXADCuEEhrxgAZwFIQEAG5IAJnGBMAbADoADOIl8APHuDaAfDcn2nVuOwoBfIA)

## API changes hasDefaultLib removed

We had a custom implementation of skipLibChecks that only checked declarations authored in the project (usually hand authored) but not those that come from a trusted central source. This relies on setting the `hasDefaultLib` flag on the declaration source files from the trusted source and using `skipDefaultLibChecks`. This approach unfortunately no longer works with 6.0 resulting in slower build times for us.

One workaround if overriding `isSourceFileDefaultLibrary` on the `program` instance. This seems to work well in 6.0. It would be useful to have a better way to exclude files from type checking in 7.0 where we will not be able to do such monkey patching. Even with the perf improvements in 7.0 it seems wasteful to check files we know are valid.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

リンクされた Playground の例と報告された Issue #63225 および #63227 から始め、次に、報告で挙げられているモジュール解決、JavaScript の emit、Program API の各領域を調査してください。単一の完了基準はありません。移行の影響、コメントの削除、推論の変更、デフォルトライブラリのチェックに関する懸念について、それぞれ個別に再現と判断が必要になります。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript, typescript
領域
compilers
issue の種類
バグ
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
20/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。