import { Collection } from "miragejs"; type ModelType = { name: string }; const collection = new Collection(); collection.add({ name: "Bob" }); // $ExpectType Collection collection.add({ err: "err" }); // $ExpectError collection.destroy(); // $ExpectType Collection collection.filter((item) => item.name === "Bob"); // $ExpectType Collection collection.filter((item) => item.err === "Err"); // $ExpectError collection.includes({ name: "Bob" }); // $ExpectType boolean collection.includes({ err: "err" }); // $ExpectError collection.mergeCollection(new Collection()); // $ExpectType Collection collection.mergeCollection(new Collection<{ err: string }>()); // $ExpectError collection.reload(); // $ExpectType Collection collection.remove({ name: "Bob" }); // $ExpectType Collection collection.remove({ err: "Err" }); // $ExpectError collection.save(); // $ExpectType Collection collection.slice(0, 1); // $ExpectType Collection // $ExpectType Collection collection.sort((a, b) => { return a.name.localeCompare(b.name); }); collection.sort((a, b) => { return a.err.localeCompare(b.err); // $ExpectError }); collection.update("name", "John"); // $ExpectType Collection collection.update("name", new Date()); // $ExpectError collection.update("err", "err"); // $ExpectError