Back to Denoland

No Implicit Declare Namespace Export

lint/rules/no-implicit-declare-namespace-export.md

latest660 B
Original Source

Disallows the use of implicit exports in "ambient" namespaces.

TypeScript implicitly export all members of an "ambient" namespaces, except whether a named export is present.

Invalid:

ts
// foo.ts or foo.d.ts
declare namespace ns {
  interface ImplicitlyExported {}
  export type Exported = true;
}

Valid:

ts
// foo.ts or foo.d.ts
declare namespace ns {
  interface NonExported {}
  export {};
}

declare namespace ns {
  interface Exported {}
  export { Exported };
}

declare namespace ns {
  export interface Exported {}
}