Следующий код не компилируется.
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
на основе синтаксис.
Если мое предположение было сделано правильно, есть ли обходной путь для этого? Можно ли распространять необязательные аргументы?