At a glance
- Identifier: #939
- Stage: RFC 1 / Proposal
- Champion: @yaacovCR
- Latest activity: Spec PR closed on 2026-03-05
- Spec PR: https://github.com/graphql/graphql-spec/pull/939
- Related:
Spec PR description
Cf. https://github.com/graphql/graphql-spec/pull/373#issuecomment-375489730
# generic types
interface Node {
id: ID!
}
interface Connection {
pageInfo: PageInfo!
edges: [Edge]
}
interface Edge {
cursor: String
node: Node
}
type PageInfo {
hasPreviousPage: Boolean
hasNextPage: Boolean
startCursor: String
endCursor: String
}
# schema-specific types
interface Pet {
id: ID!
name: String
}
type Cat implements Pet & Node {
id: ID!
name: String
}
type Dog implements Pet & Node {
id: ID!
name: String
}
union HousePet implements Pet & Node = Cat | Dog
# house-pet-specific types
type HousePetEdge implements Edge {
cursor: String
node: HousePet # <<< This is what is unlocked by this PR
}
type HousePetConnection implements Connection {
pageInfo: PageInfo!
edges: [HousePetEdge]
}
# query
type Query {
housePets: HousePetConnection
}
Timeline
March 2026
- Spec PR closed on 2026-03-05
June 2022
May 2022
- @yaacovCR committed "unions implementing interfaces have fields" on 2022-05-23
April 2022
- Advanced to RFC 1 on 2022-04-07 by leebyron
- Added to WG agenda on 2022-04-07
- Mentioned in WG notes on 2022-04-07
- 2 commits pushed on 2022-04-06
- @yaacovCR committed "review feedback"
- @yaacovCR committed "adjust validation text"
- Top comment edited on 2022-04-05 by yaacovCR
- Spec PR created on 2022-04-05 by yaacovCR
- @yaacovCR committed "Add spec text for unions implementing interfaces" on 2022-04-05