microsoft / microsoft/TypeScript

ESM strict imports mode option to moduleResolution bundler

オープン
#63,381 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
Needs More Info
主要言語
Go
スター
111k
フォーク
14.3k
平均マージ
2日 4時間
マージ済み PR(30日)
132

説明

### 🔍 Search Terms

moduleResolution bundler esm imports

### ✅ Viability Checklist

- [x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
- [x] This wouldn't change the runtime behavior of existing JavaScript code
- [x] This could be implemented without emitting different JS based on the types of the expressions
- [x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- [x] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- [x] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

### ⭐ Suggestion

Add an option to enforce imports with file extension when the module is iESM (type: module) and moduleResolution is bundler.

### 📃 Motivating Example

For now in bundler moduleResolution, typescript is tolerent.
But when we develop a library, we have no idea of the strictness of the bundler (webpack is strict for example).
We need a way to enforce the imports with file extension in case the module is ESM

A dedicated option in the tsconfig can resolve it that we will enable or not

### 💻 Use Cases

1. What do you want to use this for?
2. What shortcomings exist with current approaches?
3. What workarounds are you using in the meantime?

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

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

調査の方向性

まず、コンパイラの moduleResolution bundler の動作と、ESM (type: module) import の処理を確認します。提案する tsconfig オプションが既存の動作を変更せずにファイル拡張子を強制する方法を定義し、その後、strict 構成と non-strict 構成の両方のカバレッジを追加します。完了の定義は、オプションが有効な場合に bundler resolution が拡張子のない ESM import を報告することです。

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

評価

技術スタック
typescript
領域
compilers
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

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

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