rollup-plugin-dts
rollup-plugin-dts copied to clipboard
[bug] Introduces a variable that cirtularly references itself
Checklist
- [x] I can reproduce this issue when running this plugin on its own.
Other plugins, such as
node-resolve
are known to cause issues. - [x] I am running this plugin on
.d.ts
files generated by TypeScript. The plugin can consume.ts
and even.js
files (withallowJs: true
), but this is known to cause issues. - [x] This issue is not related to rolling up
@types
. The plugin ignores these by default, unlessrespectExternal
is set.@types
can contain hand-crafted code which is known to cause issues.
Code Snipped
// index.d.ts
declare namespace a {
var fn: typeof import("./other-file.d.ts").fn;
}
export { a };
// other-file.d.ts
export declare function fn(): void;
The .ts
files are
// index.ts
import { fn } from "./other-file";
export function a() {}
a.fn = fn;
// other-file.ts
export function fn() {}
Output
declare function fn(): void;
declare function a(): void;
declare namespace a {
var fn: typeof fn;
}
export { a };
You can see that var fn
circularly references itself, rather than referencing the fn
function.