Estou trabalhando com uma função de terceiros, com um genérico do tipo any
. Essa função retorna um objeto do tipo passado para ela, e meu próprio código funciona contra essa coisa retornada.
Estou tentando escrever minha própria função genérica, que recebe um tipo genérico HasID
e o passa para a função de terceiros. No entanto, quando tento acessar o ID
campo do valor de retorno da função de terceiros, recebo um erro.
O que eu preciso fazer para digitar isso corretamente?
type HasID struct {
ID string `json:"id"`
}
func ThirdPartyFunc[T any]() T {
// do some stuff
return someThing // of type T
}
func MyFunc[U HasID]() {
thingWithID := ThirdPartyFunc[U]()
fmt.Println(thingWithID.ID) // undefined (type U has no field or method ID)
}