A leading underscore is a convention that anything can ignore; a hash-prefixed field is a syntax error to access from outside. The #field in obj brand check is…
clone copies the initialised state of a readonly property, so modifying the copy throws and every wither has to construct a new instance. The verbosity compounds: a value…
Pure intersection types in 8.1 mean class and interface types only, which excludes the nullable case that most signatures need. The restriction to class types is what “pure”…
An object may be a default for a parameter, a static variable, a global constant and an attribute argument, and not for a property. The exclusion is a…
A status column had held strings for six years, with no constraint anywhere and three spellings of shipped in production. The backing type must be int or string…
The same match over order status appeared in a controller, two Blade templates, a mailer and an exporter, and adding a case updated four of the five. Moving…
readonly prevents reassignment of the property and says nothing about what the property points at, which is obvious for objects and surprising for arrays. The array case works…