在 TypeScript 外部模块声明(整个.d.ts文件或declare module另一个文件中的块)中,默认情况下,即使未标记 ,也会导出所有符号export。Luke Pighetti发现添加export { ... }语句可以抑制这种行为,以便仅export导出标记的符号。
例子my-module.d.ts:
export const a = 1;
declare const b = 2;
export {};
Run Code Online (Sandbox Code Playgroud)
consumer.ts:
import { a } from "./my-module"; // OK
import { b } from "./my-module"; // Error
Run Code Online (Sandbox Code Playgroud)
此行为可能有用。这是故意的,还是我应该报告而不是鼓励人们依赖的 TypeScript bug?