我试图从库中导入所有内容作为哈希,修改它,并重新导出修改后的哈希,而不知道库中的所有命名导出.例如:
import * as reactBootstrap from 'react-bootstrap';
wrappedReactBootstrap = doFunnyThingsTo(reactBootstrap);
export {
...wrappedReactBootstrap
};
// or
export wrappedReactBootstrap;
Run Code Online (Sandbox Code Playgroud)
我对https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export的理解是规范不允许以下内容.有人可以证实吗?
显然,循环是不可能的,因为导出和导入语句必须是顶级的.
我想在外部库定义中声明一个组件(我正在编写流类型react-bootstrap
),以便我有可选和必需的道具,而且没有额外的道具.我有以下内容:
declare export type AlertProps = {|
bsClass: bsClass,
bsStyle: ?bsStyle,
onDismiss: ?(e: SyntheticEvent) => any,
closeLabel: ?string,
style: ?style,
|}
declare export class Alert extends React$Component {
props: AlertProps;
}
Run Code Online (Sandbox Code Playgroud)
(为了这个例子,我们假设bsStyle
实际上是必需的.)但是,如果省略,流仍然会抱怨bsClass
49: props: AlertProps;
^^^^^^^^^^ property `bsClass`. Property not found in
26: ? (<Alert bsStyle="danger" style={{ textAlign: 'center' }}>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ props of React element `Alert`. See: src/components/audit/AuditAlert.jsx:26
Run Code Online (Sandbox Code Playgroud)
如果我将道具包裹起来$Shape<>
,我就不能拥有所需的道具.我的解决方法如下:
declare export type AlertProps = {
// required props go here
bsClass: bsClass,
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的 lambda 函数与 API 网关集成,该函数必须异步运行,因为它需要很长时间。我相信我必须选择“AWS 服务”并指定 Lambda,而不是选择“Lambda”集成类型。(例如,这和这似乎暗示了这一点。)
但是,当我尝试将 AWS 子域设置为我的 Lambda 函数的 ARN 时,我收到消息“用于集成的 AWS ARN 必须包含路径或操作”。如果我将子域设置为我的 Lambda 函数的名称,则在尝试部署时,我会收到“用于集成的 AWS ARN 包含无效路径”。
这种类型的集成合适的 AWS 子域是什么?
请注意,我也可以接受这篇文章的建议并设置 Kinesis 流,但这对于我的简单用例来说似乎太过分了。如果这是解决我的问题的正确方法,很高兴尝试。
编辑:包括屏幕截图
编辑:有关不完整的解决方案,请参阅下面的评论。
Flow的文档说:When you create an object without any properties, you create an unsealed object type in Flow.
是否有可能创建一个没有属性的密封对象?
我的用例如下.我想初始化state
为一个空对象,并给状态以下类型:
type EmployeesViewState = {|
employeesRequest?: Request<Array<Employee>>,
geosRequest?: Request<Array<Geo>>,
|};
Run Code Online (Sandbox Code Playgroud)
我尝试分配空对象时得到的错误是
33: state: EmployeesViewState = {};
^^ object literal. Inexact type is incompatible with exact type
33: state: EmployeesViewState = {};
^^^^^^^^^^^^^^^^^^ exact type: object type
Run Code Online (Sandbox Code Playgroud)
当然,由于我还没有提供请求,我无法分配它们.我也无法分配undefined
给对象,因为状态是用管道定义的,即它是一个确切的类型.
我可以通过说法来欺骗流程,const a: any = {}; state = a;
但这看起来真的很笨拙.还有其他方法可以解决这个问题吗?
是否可以在AngularJS表达式的内联if语句中包含多个语句?例如,以下失败:
ng-change="someCondition() ? doA(); doB() : doC()"
ng-change="someCondition() ? doA(), doB() : doC()"
Run Code Online (Sandbox Code Playgroud)
这可以按如下方式完成:
ng-change="someCondition() ? doA() : doC(); someCondition() ? doB() : ''"
Run Code Online (Sandbox Code Playgroud)
但这很丑陋,两次调用someCondition(),并且在控制器中发出尖叫声.有没有办法让第一个例子起作用?