does  {?{firstRange: !Range, lastRange: !Range, fillerRange: !Range}} not work here?

? should explain exactly that, either the given type or null (but not undefined).