Hack で Singleton パターンを実装しようとしています。ただし、Nullable で問題が発生し続けています。
<?hh //strict
class Foo {
private static Foo $foo;
public function __construct() {
// Do stuff here.
}
public static function theFoo(): Foo {
if (null === self::$foo) {
self::$foo = new Foo();
}
return self::$foo;
}
}
$aFoo = Foo::theFoo();
実行すると、次のエラーが表示されます。
Catchable fatal error: Hack type error: Please assign a value at foo.hh line 4
型チェッカーも同様の結果を返します。
foo.hh:4:24,27: Please assign a value (Typing[4055])
静的プロパティにデフォルト値を割り当てるにはどうすればよいですか?