我有一个接受事件的指令:
<td calendarEvent [event]=event><td>
在指令中,我具有HostBinding用于根据事件添加类的,以及HostListener用于侦听mouseenter和mouseleave事件的。例如:
@HostBinding('class.all-day') get eventIsAllDay() {
if (this.event) return this.event.is_all_day;
}
Run Code Online (Sandbox Code Playgroud)
许多<td>旨意具有undefined的[event]输入。有没有一种方式HostBinding,并HostListener根据条件将被添加?在每次更改检测中,它都必须为每个<td>标签运行所有绑定和侦听器,即使没有事件也是如此。也许所需的计算能力可以忽略不计,但是我敢肯定一点点帮助,特别是对于移动设备。
我有一个 Rails 5 项目,其Page模型具有 JSONB 列content。所以结构看起来像这样(减少到问题的最低限度):
#<Page id: 46, content: {..., "media" => [{ "resource_id" => 143, "other_key" => "value", ...}, ...], ...}>
Run Code Online (Sandbox Code Playgroud)
我将如何编写一个查询来查找在 JSONB 列的键下具有resource_id某个所需数字的所有页面?这是我所做的尝试,但不起作用(我认为是因为数组的每个项目中还有其他键/值对):
mediacontentPage.where("content -> 'media' @> ?", {resource_id: '143'}.to_json)
编辑:这有效,但只会检查媒体数组中的第一个哈希:Page.where("content -> 'media' -> 0 ->> 'resource_id' = ?", '143')
我正在尝试将工具生成的类型分配给属性graphql-codegen。我尝试分配的类型是嵌套类型。给定以下类型:
type SomeType = {
someKey: Maybe<
{ __typename?: "OtherType" | undefined } &
{ someNestedKey: ({ __typename?: "AnotherType" | undefined } & Pick<AnotherType, "prop1" | "prop2">)[] }
>
}
Run Code Online (Sandbox Code Playgroud)
我需要能够做到:
myProperty: SomeType['someKey']['someNestedKey'] = []
Run Code Online (Sandbox Code Playgroud)
然而,我遇到的问题是 的类型someKey是一种Maybe类型,因此 Typescript 抱怨该类型没有someNestedKey属性<Maybe { __typename?: "OtherType" | ...} & { someNestedKey: (...)[] }>(即 的类型someKey)。
在 Typescript 中,您可以使用该!方法来声明您确定知道与undefinedand/or联合的类型的属性值null实际上在这种情况下存在。在分配类型时有没有办法做类似的事情?
由于我使用该graphql-codegen工具,因此我无法控制这些类型。