I'm not clear about the use of `!` in JSDoc.  JSDoc documents `!` is a Non-nullable type:

    {!number} Indicates that the value is of the specified type, but cannot be null.

This is confusing because `undefined` and `null` are considered types in Javascript so how could anything be null or undefined if a type is specified?

    var s = null; // would indicate that the variable is of type null 

There are valid times when undefined and null could mean different things so doesn't it also mean that type type cannot be null or undefined?

JSDoc has `?` to indicate an optional type to account for the specified type | `undefined` but you could still pass undefined explicitly to the function which makes sense if there is another parameter that follows that you don't want to omit or isn't optional.  Passing `undefined` isn't technically an omitted parameter:

    removeStrings();  // omitted parameter
    removeStrings(undefined);  // has same behavior as if the parameter was omitted 

It seems that a null parameter isn't one that was omitted and shouldn't be ignored so is isn't `{!string}` telling JSDoc that the argument cannot be null or undefined and must be String?

Anyway, this comment block was copied from another place in this same file so I assumed it was correct.   There are many others like it throughout the codebase (in many, many files)  It very well may not be the correct usage but at least it's consistent with the rest of the code so I think leave it for now.  

I will bring it up at the next architecture review, however, and see if anyone feels strongly about changing it.