@chriscas, thanks for providing the solution.
I didn't actually check it, but I'm pretty sure my code linter would complain about ternary operators not being needed (that's not the exact message it would give). Basically, it complains anytime I put a true or false in a check like this, so I'm sure it would here.
Here are a couple of alternatives (I think the second one is cleaner).
this.isCollection = Array.isArray(this.dataType) || (this.dataType && ['array', 'list', 'set'].includes(this.dataType.toLowerCase()));
this.isCollection = this.dataType && (Array.isArray(this.dataType) || ['array', 'list', 'set'].includes(this.dataType.toLowerCase()));