Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何自定义外部流类型定义文件_Javascript_Jquery_Flowtype_Flow Typed - Fatal编程技术网

Javascript 如何自定义外部流类型定义文件

Javascript 如何自定义外部流类型定义文件,javascript,jquery,flowtype,flow-typed,Javascript,Jquery,Flowtype,Flow Typed,我正在使用一个流类型的定义文件,但需要添加插件的定义,而看不到如何做到这一点的方法 假设npm模块有一个外部流类型的定义文件,该文件如下所示: declare class LibStatic { func1(): string; } declare module 'lib' { declare var exports: LibStatic; } declare var globalLib: LibStatic; 如果一个新方法func2需要动态添加到LibStatic?听起来你在做

我正在使用一个流类型的定义文件,但需要添加插件的定义,而看不到如何做到这一点的方法

假设npm模块有一个外部流类型的定义文件,该文件如下所示:

declare class LibStatic {
  func1(): string;
}

declare module 'lib' {
  declare var exports: LibStatic;
}

declare var globalLib: LibStatic;

如果一个新方法
func2
需要动态添加到
LibStatic

听起来你在做一件坏事,我该如何自定义外部流类型定义文件™. 避免事后变异类型,否则会陷入混乱,失去静态类型检查的好处。话虽如此,您可以如下处理它


创建您自己的库,它可以从
LibStatic
重新导出所有内容。您可以在那里添加新方法,并完全控制导出的类型。现在,您可以在以前使用
LibStatic

的任何地方使用自己的库。通常,向现有类型动态添加属性与静态类型系统并不真正兼容。@loganfsmyth我不确定为什么不再是静态的。我只是在寻找一种方法,将其他方法添加到预定义的定义中,但结果是静态类型。如果属性已经存在于库本身中,那么它们应该位于
流类型的定义中。如果它们不是,那么您可以添加它们,或者库导出以某种方式是动态的。这两种情况都意味着导出不是静态的。我理解,但是在jQuery的情况下,flow typed的定义只包含核心功能,并且根据配置的插件,$namespace可以有其他需要定义的方法。你会怎么做?我不能说你的特定插件,但通常我会期望在你需要的地方导入具有插件行为的模块,该模块的导出定义扩展行为。为什么这是一件坏事?我的问题的具体用例实际上是jQuery和插件系统。默认的jQuery类型定义文件包含核心组件,但根据安装的插件,可以提供其他方法。