We wish to compare Todo
instances that have been added to a todoStore:EStore<Todo>
for equality.
Demo
First we will create the Todo
model and a few Todo
instances.
export class Todo {
constructor(
public complete: boolean,
public title: string,
public gid?: string,
public id?: number
) {}
}
const todo1 = new Todo(false, 'Finish it!');
const todo2 = new Todo(false, 'Just do it!');
const todos = [todo1, todo2];
Then we will initialize our Todo entity store.
const todoStore: EStore<Todo> = new EStore<Todo>(todos);
Note that when each Todo
instance as added to the store a unique global id was assigned to it.
//========================================
// Check Global ID Assignment
//========================================
console.log(todo1);
Next we will compare entities using their global IDs (gid
).
let todo1EqualsTodo1 = todoStore.equalsByGUID(todo1, todo1);
//console.log(`Todo 1 Equals Todo1 ${todo1EqualsTodo1}`);
let todo1EqualsTodo2 = todoStore.equalsByGUID(todo1, todo2);
//console.log(`Todo 1 Equals Todo2 ${todo1EqualsTodo2}`);
We can also compare entities by their id
property using equalsByID
.
todo1.id = 1;
todo2.id = 2;
todo1EqualsTodo1 = todoStore.equalsByID(todo1, todo1);
//console.log(`Todo 1 Equals Todo1 ${todo1EqualsTodo1}`);
todo1EqualsTodo1 = todoStore.equalsByID(todo1, todo2);
console.log(`Todo 1 Equals Todo2 ${todo1EqualsTodo2}`);