Следующий код не компилируется.
type A(?arg) =
member __.Arg : string option = arg
type B(?arg) =
inherit A(arg) //ERROR expected type string but has type 'a option
Я предполагаю, что это потому, что должен быть предоставлен экземпляр базового типа опции, а компилятор обрабатывает передачу Some
/ None
на основе синтаксиса.
Предполагая, что мое предположение было правильно принято, есть ли обходной путь для этого? Можно ли распространять необязательные аргументы?