Я пишу общий сервис CRUDL в качестве основы для множества простых объектов, которые аналогичным образом работают с базой данных. Я хотел бы написать что-то вроде этого:
export class CRUDLService<C, R, U, D, L, T> {
async create(fields: C, connection: Connection): Promise<T> { ... }
async read(fields: R, connection: Connection): Promise<T> { ... }
async update(fields: U, connection: Connection): Promise<T> { ... }
async delete(fields: D, connection: Connection): Promise<T> { ... }
async list(fields: L, connection: Connection): Promise<T> { ... }
}
Но мне это кажется тяжелым по типам.
Есть ли альтернативы этому подходу?
Это сработает?