enterprise.ts 641 B

123456789101112131415161718192021222324252627282930
  1. interface Employee {
  2. name: string;
  3. title: string;
  4. }
  5. interface Manager extends Employee {
  6. departement: string;
  7. numOfEmployees: number;
  8. scheduleMeeting: (topic: string) => void;
  9. }
  10. // Implements Employee and more, so:
  11. // - can be used as an Employee parameter
  12. // - is not of type Employee
  13. // TS calls this a "structural type system" aka "duck typing": interfaces as
  14. // matches as implemented even when not declared, like in Go.
  15. let dev = {
  16. name: 'hr',
  17. title: 'senior TS dev',
  18. editor: 'VSCode',
  19. };
  20. let employee : Employee = dev;
  21. function foo(e: Employee) {
  22. console.log(e.name + ": " + e.title);
  23. }
  24. foo(dev);
  25. foo(employee);