microsoft / microsoft/TypeScript

Enable `allowJs` with `isolatedDeclarations`

オープン
#58,262 コメント 6 件 リアクション 21 件 担当者 0 名 GitHub で見る

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

Experience Enhancement
主要言語
Go
スター
111k
フォーク
14.4k
平均マージ
1日 19時間
マージ済み PR(30日)
117

説明

Acknowledgement
  • I acknowledge that issues using this template may be closed without further explanation at the maintainer's discretion.
Comment

Today, an error is issued when allowJs is set alongside isolatedDeclarations - js and ts .d.ts emit use the same pipeline, so it really should work, provided the error generation logic isn't making too many syntax assumptions.

Mostly, unlocking this is going to involve looking through the isolatedDeclarations tests and copying them with their cast/annotation syntaxes swapped to jsdoc and filenames swapped to .js just to give confidence things are going to work OK (and that getEffectiveTypeNode is being used over a direct .type get in enough places in the error generator). There's a few other JS-specific error cases to look at (js's unique export/expression merges, for one) that may need some new errors, but the bulk of it is just ensuring the existing type node presence checking logic generalizes to jsdoc-sourced type nodes.

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

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

はじめの一歩

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

調査の方向性

まず、既存の isolatedDeclarations テストと error generator を確認します。特に、直接の型アクセスではなく getEffectiveTypeNode を使用している箇所を確認してください。関連するケースを JSDoc アノテーションと .js ファイル名付きで複製し、その後、JavaScript 固有の export と expression-merge のケースを調査します。allowJs と isolatedDeclarations の組み合わせで誤って失敗しなくなり、拡張したテストがパスすれば完了です。

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

評価

技術スタック
javascript, typescript
領域
compilers
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

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

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