diff --git a/src/Resources/views/common.ts.twig b/src/Resources/views/common.ts.twig
index 9ba8bef01f2c0fea8508380038d3450b76df238f..cdec1d0f546cf3d5d42eff5c35376f8704c6699e 100644
--- a/src/Resources/views/common.ts.twig
+++ b/src/Resources/views/common.ts.twig
@@ -14,6 +14,16 @@ export const IRI_PROPERTY = '@id';
  */
 export const TYPE_PROPERTY = '@type';
 
+/**
+ * Nom de la propriété contenant les resource d'une collection.
+ */
+export const COLLECTION_MEMBERS = 'hydra:member';
+
+/**
+ * Nom de la propriété contenant le nombre total d'objet d'une collection.
+ */
+export const COLLECTION_TOTAL_COUNT = 'hydra:totalItems';
+
 /**
  * IRI typé.
  *
@@ -41,9 +51,25 @@ export interface Resource {
 /**
  * Collection représente une collection de respoucres JSON-LD pour un type T donné.
  */
-export interface Collection<R> {
-  'hydra:member': R[];
-  'hydra:totalItems': number;
+export interface Collection<R extends Resource> {
+  [COLLECTION_MEMBERS]: R[];
+  [COLLECTION_TOTAL_COUNT]: number;
+  [property: string]: any;
+}
+
+/**
+ * Retourne les membres d'une collection.
+ */
+export function getCollectionMembers<R extends Resource>(collection: Collection<R>): R[] {
+  return collection[COLLECTION_MEMBERS];
+}
+
+/**
+ * Retourne le nombre total d'items
+ * @param collection
+ */
+export function getCollectionTotalCount<R extends Resource>(collection: Collection<R>): number {
+  return collection[COLLECTION_TOTAL_COUNT];
 }
 
 /**