On Python 3, the return value for itsdangerous.TimedJSONWebSignatureSerializer.dumps is bytes not str so I think the return type should be Union[bytes, str]
Python 3.7
>>> from itsdangerous import TimedJSONWebSignatureSerializer
>>> s = TimedJSONWebSignatureSerializer('test')
>>> test_obj = s.dumps({'foo': 'bar'})
>>> type(test_obj)
<class 'bytes'>
Python 2.7
>>> from itsdangerous import TimedJSONWebSignatureSerializer
>>> s = TimedJSONWebSignatureSerializer('test')
>>> test_obj = s.dumps({'foo': 'bar'})
>>> type(test_obj)
<type 'str'>