Microsoft/TypeScript

Emitted declarations for JS file do not import a class if it's re-exported

オープン

#61,718 opened on 2025/05/17

 (1 件のコメント) (0 件のリアクション) (0 人の担当者)TypeScript (13,395 件のフォーク)batch import
BugDomain: Declaration EmitHelp Wanted

Repository metrics

Stars
 (108,860 個のスター)
PR merge metrics
 (平均マージ 6d 17h) (30d で 9 merged PRs)

説明

🔎 Search Terms

import export class declarations

🕗 Version & Regression Information

This changed in PR #55472, commit 5ce34cafad, version 5.3.0-dev.20230829.

⏯ Playground Link

No response

💻 Code

index.js:

import { Something } from './something';
export { Something } from './something';

export const something = new Something();

something.ts (or something.js):

export class Something {}

tsconfig.json:

{
  "compilerOptions": {
    "checkJs": true,
    "declaration": true,
    "outDir": "dist"
  }
}

🙁 Actual behavior

The import of Something is missing in the emitted declarations file index.d.ts:

export { Something } from "./something";
export const something: Something;

🙂 Expected behavior

The import of Something should be included in the emitted declarations file index.d.ts:

export { Something } from "./something";
export const something: Something;
import { Something } from './something';

Additional information about the issue

The problem does not occur if

  • the file name is index.ts instead of index.js
  • export const something includes an explicit JSDoc type annotation (/** @type {Something} */)

コントリビューターガイド