predicates
Una pequeña familia de comprobaciones de tipo y de valor, disponibles como funciones que se pasan tal cual a filter, takeWhile y compañía.
Lección
En Dart del día a día escribirías simplemente a is String: es
lo idiomático y nada de aquí lo sustituye. Estas funciones existen por un
motivo muy concreto: el operador is de Dart no se puede pasar
como valor de función, pero filter, takeWhile,
find y compañía esperan un bool Function(A).
filter(isString, mixedList) se lee mejor que
filter((a) => a is String, mixedList), y de eso va toda esta
página.
isNil es un port directo de la comprobación «es
null o undefined» de FxTS; como Dart colapsa
ambos en null, es idéntica byte a byte a isNull.
Existen tres nombres más solo por paridad con FxTS, marcados como
@Deprecated: isUndefined (en Dart no hay
undefined, así que es isNull a secas),
isArray (el Array de JS → List en
Dart, así que es isList) e isObject (el objeto
plano de JS → Map en Dart, así que es isMap). En
código nuevo usa el nombre no obsoleto; los alias están ahí para que las
llamadas portadas sigan compilando.
Demo 1 · Predicados listos para filtrar
Demo 2 · isNil y los alias obsoletos
Pruébalo tú
Ejercicio: usa isNotNull para filtrar el null de row.