F # restrições de tipo genérico e tipagem de pato
Eu estou tentando implementar pato digitando em F # e vi que você pode ter umrestrição de membro em genéricos F # do seguinte modo:
type ListEntryViewModel<'T when 'T : (member Name : string)>(model:'T) =
inherit ViewModelBase()
member this.Name with get() = model.Name
No entanto, o código acima não será compilado quando eu tentar referenciar a propriedade. Eu recebo um erro do compilador:
Este código não é suficientemente genérico. A variável de tipo ^ T quando ^ T: (membro get_Name: ^ T -> string) não pôde ser generalizada porque escaparia de seu escopo.
É possível implementar a tipagem de pato por meio de uma restrição genérica?