Typescript interfaces: Difference between revisions

From wikinotes
(Created page with "In typescript, interfaces are implicit -- any object that satisfies the requested interface is allowed.<br> Interfaces can be extended (grown) into new interfaces that include others. = Interface = <blockquote> <syntaxhighlight lang="typescript"> interface Person { firstName: string; lastName: string; } interface Employee extends Person { id: number; } </syntaxhighlight> </blockquote><!-- Interface --> = Type Alias = <blockquote> You can also define a type...")
 
Line 13: Line 13:
     id: number;
     id: number;
}
}
function getId(employee: Employee): number {
    return employee.id;
}
getId({ id: 1, firstName: "anakin", lastName: "skywalker" }); // valid
</syntaxhighlight>
</syntaxhighlight>
</blockquote><!-- Interface -->
</blockquote><!-- Interface -->

Revision as of 03:30, 11 December 2022

In typescript, interfaces are implicit -- any object that satisfies the requested interface is allowed.
Interfaces can be extended (grown) into new interfaces that include others.

Interface

interface Person {
    firstName: string;
    lastName: string;
}

interface Employee extends Person {
    id: number;
}

function getId(employee: Employee): number {
    return employee.id;
}

getId({ id: 1, firstName: "anakin", lastName: "skywalker" }); // valid

Type Alias

You can also define a type-alias, but you cannot extend it in a new interface.

type Point {
    x: number;
    y: number;
}