TypeScript and Duck Typing

interface IItem 
{
id: number,
title: string
};
function print(item: IItem)
{
console.log(item.id + " > " + item.title);
}
var i : IItem = {
id: 10,
title : "ABC"
};
//Ok - As it implements IItem
print(i);
//Ok - As it implicitly implements IItem
print({ id: 11, title: "XYZ" });
interface IProduct
{
id: number,
title: string,
author: string
};
var book: IProduct = {
id: 1,
title: "C# in Depth",
author: "Jon Skeet"
};
//Ok - Even though book implements IProduct and not the IItem
//It has two properties "id" and "title"
//which is actually the print function is interested in
print(book);

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Sharing Local Angular Libraries without NPM

VulcanJS 1.8: A Better Architecture

And then I saw her Face++

Tutorial: JavaScript Operator

Front-end Reading in Depth Week-18

Configuring Jest With Next.js

Let’s build a content extract endpoint — part 3

How I made my own file compressor using Node.js

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ajay Bhosale

Ajay Bhosale

More from Medium

A Brief Introductio

Forcing string patterns in Typescript

What is Typescript