J'ai une union discriminée que je veux utiliser comme argument pour une fonction que j'expose dans un fichier de signature. Actuellement, j'ai le code défini comme tel:Partage des unions discriminées dans les fichiers Signature
Signature.fsi: Avec Func
type Union =
| Part of string
| Part2 of int
val Func: Union -> unit
étant défini dans un fichier séparé fs. Le problème est que lorsque je fais cela, le fichier fs ne peut pas détecter la définition de l'Union, ce qui fait échouer le code qui crée une valeur Part ou Part2. Sauf si je définis de nouveau l'union dans le fichier fs qui utilise l'union.
Ainsi, par exemple:
Signature.fs:
type Union =
| Part of string
| Part2 of int
let Func input:Union =
ignore
OtherFile.fs
type Union =
| Part of string
| Part2 of int
let DoSomething =
Func(Part("Test"))
Sans redéfinir Union chaque fois que cela échoue. Ai-je manqué quelque chose d'évident? Je suis encore assez vert quand il s'agit de F #.
c'est ce que j'ai fini avec ... Je suis juste un peu ennuyé je dois définir le type deux fois, une fois dans la signature et une fois dans le reste du module ... J'espère que cela va changer à quelque point. – Massif
Nous sommes en 2015 et je pense que le problème est toujours là, c'est-à-dire.si j'ai une union discriminée dans un fichier fsi, je la redéfinis dans son intégralité dans le fichier .fs. Je trouve ça un peu énervant aussi. –