**Description**
The `airflow.models.baseoperator.chain()` is a very useful and convenient way to add sequential task dependencies in DAGs but the function only supports tasks of a `BaseOperator` type.

**Use case / motivation**
Users who create tasks via the `@task` decorator will not be able to use the `chain()` function to apply sequential dependencies that do not share an `XComArg` implicit dependency.

**Are you willing to submit a PR?**
Absolutely. 🚀 

**Related Issues**
None

tests/models/test_baseoperator.py
def __init__(self, test_param, params=None, default_args=None):
        self.test_param = test_param
    def set_xcomargs_dependencies(self):
        ...
class DummySubClass(DummyClass):
    def __init__(self, test_sub_param, **kwargs):
        super().__init__(**kwargs)
        self.test_sub_param = test_sub_param
class TestBaseOperator(unittest.TestCase):
    def test_apply(self):
        dummy = DummyClass(test_param=True)
        assert dummy.test_param
        with pytest.raises(AirflowException, match='Argument.*test_param.*required'):
            DummySubClass(test_sub_param=True)
    def test_default_args(self):
        default_args = {'test_param': True}
        dummy_class = DummyClass(default_args=default_args)
        assert dummy_class.test_param
        default_args = {'test_param': True, 'test_sub_param': True}
        dummy_subclass = DummySubClass(default_args=default_args)
        assert dummy_class.test_param
        assert dummy_subclass.test_sub_param
        default_args = {'test_param': True}
        dummy_subclass = DummySubClass(default_args=default_args, test_sub_param=True)
        assert dummy_class.test_param
        assert dummy_subclass.test_sub_param
        with pytest.raises(AirflowException, match='Argument.*test_sub_param.*required'):
            DummySubClass(default_args=default_args)
    def test_incorrect_default_args(self):