Skip to content

Declaration file emits symbol property keys without importing them #62257

@privatenumber

Description

@privatenumber

🔎 Search Terms

missing import in d.ts, symbol key not imported, unique symbol dts emit, dataTagSymbol not found, declaration file missing import

🕗 Version & Regression Information

  • This is the behavior in every version I tried, and I reviewed the FAQ for entries about "Behavior That Looks Wrong (And Arguably Is) But Is Currently Working As Intended"
  • This bug is reproducible in the latest stable (5.9.2), and still occurs in next (6.0.0-dev.20250811)

⏯ Playground Link

https://stackblitz.com/edit/stackblitz-starters-vflvduch?file=src%2Findex.ts

💻 Code

Here's the code from the Stackblitz reproduction above.

src/index.ts:

import { fn } from 'test-pkg';
export const value = fn();

node_modules/test-pkg/index.d.ts:

declare const lostSymbol: unique symbol;
type lostSymbol = typeof lostSymbol;

type SomeGeneric<T> = {
    [lostSymbol]: T;
};

declare function fn(): SomeGeneric<unknown>;

export {
    lostSymbol,
    fn
};

🙁 Actual behavior

dist/index.d.ts:

export declare const value: {
    [lostSymbol]: unknown; // lostSymbol is not defined here and errors on the consumer's type check
};

🙂 Expected behavior

dist/index.d.ts:

import { lostSymbol } from 'test-pkg'; // should import from pacakge

export declare const value: {
    [lostSymbol]: unknown;
};

Additional information about the issue

Related?: #49065

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFix AvailableA PR has been opened for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions