Microsoft/TypeScript
Auf GitHub ansehenConflict between imported namespace and global type in generated declaration file
Open
#48.121 geöffnet am 4. März 2022
BugDomain: Declaration EmitHelp Wanted
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
Bug Report
🔎 Search Terms
namespace import declaration conflict global types date-fns
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about declaration files
⏯ Playground Link
Playground link with relevant code
💻 Code
locale.ts:
export type T = {};
types.d.ts:
type Locale = {
code?: string
}
declare module 'date-fns/locale' {
const es: Locale
namespace es {}
}
main.ts:
import { es } from "date-fns/locale";
import * as Locale from "./locale";
export const f = (locale: Locale.T) => es;
Run tsc with "declaration": true.
🙁 Actual behavior
tsc runs with no errors, but the following main.d.ts file is generated:
import * as Locale from "./locale";
export declare const f: (locale: Locale.T) => Locale;
When we try to use this .d.ts file in another TS project we get this error:
Cannot use namespace 'Locale' as a type
🙂 Expected behavior
No conflict. Perhaps the namespace import should be renamed in the .d.ts file.