将类型分配给 属性,它是 Maybe 类型的嵌套类型
Assigning a type to a property that is a nested type of a Maybe type
我正在尝试将由 graphql-codegen
工具生成的类型分配给 属性。我要分配的类型是嵌套类型。给定以下类型:
type SomeType = {
someKey: Maybe<
{ __typename?: "OtherType" | undefined } &
{ someNestedKey: ({ __typename?: "AnotherType" | undefined } & Pick<AnotherType, "prop1" | "prop2">)[] }
>
}
我需要能够做到:
myProperty: SomeType['someKey']['someNestedKey'] = []
但是,我 运行 遇到的问题是 someKey
的类型是 Maybe
类型,所以 Typescript 抱怨没有 someNestedKey
属性 在 <Maybe { __typename?: "OtherType" | ...} & { someNestedKey: (...)[] }>
类型上(即 someKey
的类型)。
在 Typescript 中,您可以使用 !
方法来声明您确定知道与 undefined
[=33 合并的类型的 属性 值=] null
实际上,在这种情况下确实存在。有没有办法在分配类型时做类似的事情?
由于我使用的是 graphql-codegen
工具,因此我无法控制这些类型。
我刚刚在文档中找到了答案。我需要使用 NonNullable
类型。
myProperty: NonNullable<SomeType['someKey']>['someNestedKey'] = []
参考:https://www.typescriptlang.org/docs/handbook/utility-types.html#nonnullablet
我正在尝试将由 graphql-codegen
工具生成的类型分配给 属性。我要分配的类型是嵌套类型。给定以下类型:
type SomeType = {
someKey: Maybe<
{ __typename?: "OtherType" | undefined } &
{ someNestedKey: ({ __typename?: "AnotherType" | undefined } & Pick<AnotherType, "prop1" | "prop2">)[] }
>
}
我需要能够做到:
myProperty: SomeType['someKey']['someNestedKey'] = []
但是,我 运行 遇到的问题是 someKey
的类型是 Maybe
类型,所以 Typescript 抱怨没有 someNestedKey
属性 在 <Maybe { __typename?: "OtherType" | ...} & { someNestedKey: (...)[] }>
类型上(即 someKey
的类型)。
在 Typescript 中,您可以使用 !
方法来声明您确定知道与 undefined
[=33 合并的类型的 属性 值=] null
实际上,在这种情况下确实存在。有没有办法在分配类型时做类似的事情?
由于我使用的是 graphql-codegen
工具,因此我无法控制这些类型。
我刚刚在文档中找到了答案。我需要使用 NonNullable
类型。
myProperty: NonNullable<SomeType['someKey']>['someNestedKey'] = []
参考:https://www.typescriptlang.org/docs/handbook/utility-types.html#nonnullablet