Design patterns·The named ways it goes wrong
the status is a string, the comparison was misspelled, and the branch silently never ran.
Stringly typed
Also calledstringly-typed, magic string, strings for everything
Using strings where a type would do — statuses, keys, identifiers, enumerated choices — so the compiler cannot help and every comparison is a spelling test. It is primitive obsession's most common form and its most damaging, because a wrong string does not fail, it just does not match. An enum, a sum type or a tiny type removes the entire class of bug.