can we extend Document to infer types of attributes while retrieving documents on Typescript? What's the preferred way? Because DocumentList<Document> doesn't include attributes and currently I have to go with any as workaround.
what's the usecase?
iirc, the main structure would be in Document.data, DocumentList is just a type that holds a total: number & the list of documents. If you mean infer the return type from the sdk return types, I don't think so.
you can always play around with extended types though.
you could do some sort of documents.map((doc) => ...).
From what I understand, instead of doing document.data["Attribute"] Doing document.data.attribute so it gets completed automatically
i see, but the type won't exist due to data's dynamic nature. but iirc, there was a library by a community member that would pre-fetch the types. should be in #🛠│tools ig.
Maybe I didn't explained it well enough. Could be something totally related to ts only. Let me give bit more context. Give me a while
Following is a function I'm using to retrieve some aatribute from the documents.
const statsData = await databases.listDocuments(
APPWRITE_DB_ID,
APPWRITE_FILES_COUNTS_COL_ID,
[Query.select(["year", "month", "count"])]
);
The return type right now is statsData is Models.DocumentList<Models.Document>. The Models.Document type has metadata related values mostly. like $id, $createdAt
Can I extend the type of Document such that along with the metadata, I can also get type of the attributes I've queried with Query.select()?
Along with the existing Document type, I also want to infer following when I access statsData
interface Stat {
year: number,
month: number,
count: number
}
@Darshan Pandya @D5
Recommended threads
- Google OAuth2 is not working
the Google OAuth2 is working perfectly in localhost, but when I bring it to production that means real domain, then when I clicked button signin nothing happene...
- Trouble Creating Database and Collection...
I’ve set up my project credentials (endpoint, project ID) and generated an API key. I’m currently focusing on creating only the database and collections (tables...
- DOWN GRADING FROM PRO
I previously subscribed to pro on one of my projects for trial but unfortunately ive been billed for this month, my aim was to try pro for one month, is there ...