using Directus SDK. Im trying to do a function that does this, I just want to change the type(CollectionsNameChanges) everytime the function is called
const directus = new Directus<CollectionsNameChanges>('https://mysamelink/');
For this I created this function
connection.ts
//here I want to get a new Type, that's why I am passing title as a parameter
export function DirectusConnection(title: any) {
return new Directus<typeof title>('https://mysamelink/');
}
myList.ts
interface MyTypes {
id: number;
}
export async function myFunction(){
type CollectionsNameChanges= {
//collection name
nameofCollection: MyTypes;
};
//here I am calling my function with the type
const directus = DirectusConnection(<CollectionsNameChanges>);
const myList = await directus.items('nameofCollection').readMany();
return myList
}
But I am getting an error in typescript telling me that expression was expected. here:
const directus = DirectusConnection(<DirectusCollection>);
You should use a generic parameter:
export function DirectusConnection<T>() {
return new Directus<T>('https://mysamelink/');
}
// or if you want to use a parameter as that generic type
// but `title` isn't being used anywhere in this function
export function DirectusConnection<T>(title: T) {
return new Directus<T>('https://mysamelink/');
}
// then later:
const directus = DirectusConnection<CollectionsNameChanges>();