interfaces.ts 541 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { Category } from "./enums";
  2. interface DamageLogger {
  3. (reason: string): void;
  4. }
  5. interface Book {
  6. author: string,
  7. available: boolean,
  8. category: Category;
  9. id: number,
  10. pages?: number,
  11. title: string,
  12. markDamaged?: DamageLogger,
  13. }
  14. interface Person {
  15. name: string;
  16. email: string;
  17. }
  18. interface Author extends Person {
  19. numBooksPublished: number;
  20. }
  21. interface Librarian extends Person {
  22. departement: string;
  23. assistCustomer: (custName: string) => void,
  24. }
  25. export {
  26. Author,
  27. Book,
  28. DamageLogger,
  29. Librarian,
  30. }