Lee*_*Lee 2 typescript graphql typescript2.0 graphql-codegen
我正在尝试将工具生成的类型分配给属性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工具,因此我无法控制这些类型。
我刚刚在文档中找到了答案。我需要使用该NonNullable类型。
myProperty: NonNullable<SomeType['someKey']>['someNestedKey'] = []
Run Code Online (Sandbox Code Playgroud)
参考: https: //www.typescriptlang.org/docs/handbook/utility-types.html#nonnullablet
| 归档时间: |
|
| 查看次数: |
519 次 |
| 最近记录: |