TypeScript 扩展模块中的对象

2024-04-23

我想做的事情确实类似于this https://stackoverflow.com/questions/12802383/extending-array-in-typescript and this https://stackoverflow.com/questions/12701732/typescript-augmenting-built-in-types除了我试图弄清楚如何将 ArrayExtension 放入模块中。

我正在尝试获得类似于 C# 扩展方法工作方式的东西,这样我就可以导入模块,并且我将拥有额外的方法。我提供的链接显示了如何扩展现有对象,但我无法弄清楚如何将其封装到模块中。


如果您的目标是像node.js这样的非浏览器环境,那么这是可能的,因为您将能够传递对模块的全局成员的引用,例如Array,到其他模块。然后,这些其他模块可以使用额外的功能扩展传入的对象和/或其原型,这些功能只能由调用模块访问。其他模块也必须做同样的事情才能获得这些扩展;因此,由于导入是明确的,冲突被最小化。

然而,在浏览器环境中,情况并非如此,因为只有一个window对象及其成员的任何更改都可以在任何地方使用。一旦您的任何模块扩展Array这些扩展将可用于所有其他模块——增加了冲突的可能性并使代码更难以推理。

话虽如此,JS 中有模式,因此 TypeScript 也有模式,它们应该可以实现您想要的功能。其中一种模式是“mixin”模式,它允许您在对象上添加额外的功能instance基础。您可以将可重用的代码分离到 mixin 模块中,然后在需要时将其应用于对象,甚至在构造函数中自动应用。看一下这个,以获得不错的概述和实施示例:http://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/ http://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript 扩展模块中的对象 的相关文章

随机推荐

  • CLLocationManagerDelegate 协议中的挂钩

    我已经 3 天遇到问题了 我想在 CLLocationManagerDelegate 协议中挂钩此方法 void locationManager CLLocationManager manager didUpdateLocations NS
  • 在 Corona sdk 上保存高分?

    我想保存游戏中创建的高分 并且当玩家点击高分按钮时可以在主菜单中看到 有人可以帮助我吗 您可以使用SQLITE https docs coronalabs com api library sqlite3 index html将高分保存到数据
  • 使用 Puppet 配置远程规则集

    我正在尝试使普罗米修斯自动化node exporter和我的普罗米修斯服务器 为了node exporter我已经编写了一个模块来安装所有需要的软件包 设置 ipaddress基于facter还有更多 现在我想确保收集到的信息 hostna
  • Haskell-Stack:构建期间出现访问冲突错误

    过去几天我一直在尝试使用堆栈构建我的 Haskell 项目 但遇到了访问冲突错误 据我了解 我有最新的堆栈版本和 GHC 这一切最初都是有效的 直到我将一个库添加到我的 cabal 文件中 我现在已经将其删除 但错误仍然出现 我也恢复到我的
  • Flutter ListView收缩包装——嵌套ListView

    我在 ListView 中有一个 ListView 内部 ListView 不知道它的高度应该是多少 所以我必须用例如 SizedBox 给它一个特定的高度 然而问题是 我实际上希望内部 ListView 收缩包装 这样它就不会滚动 占用父
  • iPhone如何将一个视图控制器的视图添加到另一个视图控制器的视图?

    这一直在我的脑海里 我真的不知道如何正确地将一个视图控制器管理的视图添加到另一个视图控制器的视图中 这不起作用 因为视图未完成加载 self messageViewController PopupMessagesViewController
  • 如何创建 3 列响应式布局?

    我有一个 3 列布局 当从桌面访问它时 它显示如下 columnleft columncenter columnright 我希望从手机 平板电脑 调整大小浏览器查看它时是这样的 columnleft columncenter column
  • python 2.6 cPickle.load 导致 EOFError

    我使用 cPickle 来腌制整数列表 使用 HIGHEST PROTOCOL cPickle dump l f HIGHEST PROTOCOL 当我尝试使用以下代码来取消它时 我收到 EOFError 我尝试在 unpickle 之前
  • CNN 模型分类错误:logits 和标签必须可广播:logits_size=[32,10] labels_size=[32,13]

    这里我尝试在图像分类上运行 CNN 模型 这是批量大小和 13 个标签 Image batch shape 32 32 32 3 Label batch shape 32 13 Watch Back Watch Chargers Watch
  • 计算聚类的 F 度量

    谁能帮我计算一下F measure的总和吗 我知道如何计算召回率和精度 但不知道对于给定的算法如何计算一个 F 测量值 举个例子 假设我的算法创建m集群 但我知道有n相同数据的聚类 由另一个基准算法创建 我找到了一份 pdf 但它没有用 因
  • pandas 数据框的元组列表列表

    我有这个数组 它是相似性计算的结果 它是一个像这样的元组列表 example a b c d a1 b1 c1 d2 在示例中 有 121044 个列表 每个列表有 30 个元组 我想要一个 pandas Dataframe 就像元组的第二
  • 在 Vuetify 组合框中通过 @change 传递目标元素

    我需要通过目标事件updateTags方法 这是下面的组合框 当我打电话给comboActive方法我可以获得目标事件 KeyboardEvent isTrusted true key y code KeyY location 0 ctrl
  • Chrome 中的 FileReader 内存泄漏

    我有一个具有文件上传功能的网页 上传以 5MB 块执行 我想在将每个块发送到服务器之前计算其哈希值 块表示为Blob https developer mozilla org en docs Web API Blob对象 为了计算哈希值 我将
  • 具有非规则形状的 NSTextContainer 示例?

    嗨 我正在使用新的TextKitiOS7 的 API 我正在尝试制作一个UITextView具有不规则形状 到目前为止 我在视图控制器中有 void loadView self view UIView alloc initWithFrame
  • 如何使对象 ID 易于理解?

    Storyboard 上的每个 UIView 都有一个唯一的对象 ID 如下所示 kvf NI koG 我想知道是否有一种方法可以使其更加人性化 例如 myLabel 您无法通过 Interface Builder 更改对象 ID Xcod
  • 为什么 ListView.getCheckedItemPositions() 没有返回正确的值?

    该应用程序有一个ListView启用多项选择后 它在 UI 中按预期工作 但是当我使用以下代码读取值时 Log i TAG Entered SearchActivity saveCategoryChoice SparseBooleanArr
  • Angular svg 或 canvas 使用颜色渐变

    我正在使用 Angular 和 d3 创建一个甜甜圈 在指令中 我可以非常简单地给填充区域指定颜色 在这个 plunker 中它是蓝色 但我想做的是让 SVG 平滑地改变其颜色 0 33 3 red 33 4 66 66 orange 66
  • 为什么我无法使用 Resources.getSystem() 而不会出现运行时错误?

    public class BobDatabase extends SQLiteOpenHelper private static final String DATABASE NAME bob db private static final
  • SQL 排序依据 - 硬编码值列表

    我有一个查询 其中返回记录状态列 记录状态列有几个值 例如 活动 已删除 等 我需要按 活动 已删除 等顺序对结果进行排序 我目前正在创建 CTE 来将每组记录进行 UNION ALL 是否有更好的动态方法来完成查询 谢谢你 您可以使用CA
  • TypeScript 扩展模块中的对象

    我想做的事情确实类似于this https stackoverflow com questions 12802383 extending array in typescript and this https stackoverflow co