gpt4 book ai didi

typescript - 为什么 Typescript 使用关键字 "export"来公开类和接口(interface)?

转载 作者:搜寻专家 更新时间:2023-10-30 20:28:35 29 4
gpt4 key购买 nike

在尝试使用 Typescript 时,我意识到模块中的类(用作命名空间)对其他类不可用,除非我在它们之前写了 export 关键字,例如:

module some.namespace.here
{
export class SomeClass{..}
}

所以现在我可以像这样使用上面的代码:

var someVar = new some.namespace.here.SomeClass();

但是我只是想知道为什么使用此关键字而不是仅使用在方法级别使用的 public 关键字来表示方法或属性应该可以从外部访问。那么为什么不使用同样的机制使类和接口(interface)等在外部可见呢?

这将给出如下结果代码:

module some.namespace.here
{
public class SomeClass{..}
}

最佳答案

主要原因是 export 符合 ECMAScript 的计划。你可能会争辩说“他们应该使用‘export’而不是‘public’,但是除了‘export/private/protected’是一组不匹配的访问修饰符之外,我相信这两者之间存在微妙的差异来解释这一点.

在 TypeScript 中,将类成员标记为 publicprivate 对生成的 JavaScript 没有影响。它只是一个设计/编译时工具,您可以使用它来阻止您的 TypeScript 代码访问它不应该访问的内容。

使用 export 关键字,JavaScript 添加一行以将导出项添加到模块。在您的示例中:here.SomeClass = SomeClass;

因此从概念上讲,由 publicprivate 控制的可见性仅用于工具,而 export 关键字会更改输出。

关于typescript - 为什么 Typescript 使用关键字 "export"来公开类和接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760462/

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