gpt4 book ai didi

typescript - `export {}` 是故意关闭 TypeScript 模块声明中所有符号的自动导出吗?

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:09 25 4
gpt4 key购买 nike

在 TypeScript 外部模块声明中(整个 .d.ts 文件或另一个文件中的 declare module block ),默认情况下,所有符号甚至被导出如果它们未标记为 export。卢克·皮盖蒂 discovered添加 export { ... } 语句会抑制此行为,因此只会导出标记为 export 的符号。

示例 my-module.d.ts:

export const a = 1;
declare const b = 2;
export {};

consumer.ts:

import { a } from "./my-module";  // OK
import { b } from "./my-module"; // Error

此行为可能很有用。这是故意的,还是我应该报告而不是鼓励人们依赖的 TypeScript 错误?

最佳答案

andy-ms says该行为是故意的。 (但它是未记录的 AFAIK,就像许多高级 TypeScript 行为一样。:( )

我找到了 the compiler code这涉及到。关闭自动导出的完整构造列表:

  • 导出 { ... }
  • 从“模块”导出 { ... }
  • 从“模块”导出 *
  • export = ...
  • export default 表达式,但不 export default 函数、类或接口(interface)定义

关于typescript - `export {}` 是故意关闭 TypeScript 模块声明中所有符号的自动导出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52583603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com