> But because of the typed properties, you have to initialize them before you can access them. I think that is cluttering up the code.
It's not cluttering code. You don't need isset if you do it properly. You have a bug if your code tries to access an uninitialized property. > From a programmer's perspective, the property is declared and should be accessible. Even if it has no value. There should be no difference between typed and none-typed properties for this. You cannot fetch value of something that has no value. The property is declared, but the value was never set. There is a difference because, as I explained it earlier, untyped properties were implicitly nullable and had a default null value. Typed properties do not have an implicit default value, and they do not hold any value until the programmer assigns some value. The property is accessible, but it doesn't have any value, not even null value.