async def METHOD_NAME(self, ctx: commands.Context, argument: str):
    # In this example we have made a custom converter.
    # This checks if an input is convertible to a
    # `discord.Member` or `discord.TextChannel` instance from the
    # input the user has given us using the pre-existing converters
    # that the library provides.
    member_converter = commands.MemberConverter()
    try:
        # Try and convert to a Member instance.
        # If this fails, then an exception is raised.
        # Otherwise, we just return the converted member value.
        member = await member_converter.METHOD_NAME(ctx, argument)
    except commands.MemberNotFound:
        pass
    else:
        return member
    # Do the same for TextChannel...
    textchannel_converter = commands.TextChannelConverter()
    try:
        channel = await textchannel_converter.METHOD_NAME(ctx, argument)
    except commands.ChannelNotFound:
        pass
    else:
        return channel
    # If the value could not be converted we can raise an error
    # so our error handlers can deal with it in one place.
    # The error has to be CommandError derived, so BadArgument works fine here.
    raise commands.BadArgument(
        f'No Member or TextChannel could be converted from "{argument}"'
    )