123456789101112131415161718192021222324252627282930 |
- interface Employee {
- name: string;
- title: string;
- }
- interface Manager extends Employee {
- departement: string;
- numOfEmployees: number;
- scheduleMeeting: (topic: string) => void;
- }
- // Implements Employee and more, so:
- // - can be used as an Employee parameter
- // - is not of type Employee
- // TS calls this a "structural type system" aka "duck typing": interfaces as
- // matches as implemented even when not declared, like in Go.
- let dev = {
- name: 'hr',
- title: 'senior TS dev',
- editor: 'VSCode',
- };
- let employee : Employee = dev;
- function foo(e: Employee) {
- console.log(e.name + ": " + e.title);
- }
- foo(dev);
- foo(employee);
|