Repository: strawberry-graphql/strawberry

Issue:
Additional type hints for strawberry.field - so that it can be used with async reolvers
If I use strawberry.field as explained in the documentation for async resolvers I get the following warning from pylance. 
```python
import asyncio
import strawberry


async def resolve_hello(root) -> str:
    await asyncio.sleep(1)

    return "Hello world"


@strawberry.type
class Query:
    hello: str = strawberry.field(resolver=resolve_hello)


schema = strawberry.Schema(Query)
``` 


```
(module) strawberry
Expression of type "StrawberryField" cannot be assigned to declared type "str"
  "StrawberryField" is incompatible with "str"   
Pylance[reportGeneralTypeIssues]
```

It would be nice if you could enhance the overloaded `field` defitions in field.py for use with coroutines. 

Used Version: 0.155.2


<!-- POLAR PLEDGE BADGE START -->
## Upvote & Fund

- We're using [Polar.sh](https://polar.sh/strawberry-graphql) so you can upvote and help fund this issue.
- We receive the funding once the issue is completed & confirmed by you.
- Thank you in advance for helping prioritize & fund our backlog.

<a href="https://polar.sh/strawberry-graphql/strawberry/issues/2500">
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://polar.sh/api/github/strawberry-graphql/strawberry/issues/2500/pledge.svg?darkmode=1">
  <img alt="Fund with Polar" src="https://polar.sh/api/github/strawberry-graphql/strawberry/issues/2500/pledge.svg">
</picture>
</a>
<!-- POLAR PLEDGE BADGE END -->



Discussion:
@QSHolzner I'll take a look at this this week :)

Resolving patch:
diff --git a/strawberry/field.py b/strawberry/field.py
--- a/strawberry/field.py
+++ b/strawberry/field.py
@@ -39,6 +39,7 @@
 _RESOLVER_TYPE = Union[
     StrawberryResolver[T],
     Callable[..., T],
+    Callable[..., Awaitable[T]],
     "staticmethod[T]",
     "classmethod[T]",
 ]


Test patch:
diff --git a/tests/pyright/test_fields_resolver_async.py b/tests/pyright/test_fields_resolver_async.py
new file mode 100644
--- /dev/null
+++ b/tests/pyright/test_fields_resolver_async.py
@@ -0,0 +1,54 @@
+from .utils import Result, requires_pyright, run_pyright, skip_on_windows
+
+pytestmark = [skip_on_windows, requires_pyright]
+
+CODE = """
+import strawberry
+
+async def get_user_age() -> int:
+    return 0
+
+
+@strawberry.type
+class User:
+    name: str
+    age: int = strawberry.field(resolver=get_user_age)
+
+
+User(name="Patrick")
+User(n="Patrick")
+
+reveal_type(User)
+reveal_type(User.__init__)
+"""
+
+
+def test_pyright():
+    results = run_pyright(CODE)
+
+    assert results == [
+        Result(
+            type="error",
+            message='No parameter named "n" (reportGeneralTypeIssues)',
+            line=15,
+            column=6,
+        ),
+        Result(
+            type="error",
+            message='Argument missing for parameter "name" (reportGeneralTypeIssues)',
+            line=15,
+            column=1,
+        ),
+        Result(
+            type="information",
+            message='Type of "User" is "Type[User]"',
+            line=17,
+            column=13,
+        ),
+        Result(
+            type="information",
+            message='Type of "User.__init__" is "(self: User, *, name: str) -> None"',
+            line=18,
+            column=13,
+        ),
+    ]