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);
print({
id: 2,
title: 'fuck',
author: 'leo'
})
var x = {
id: 3,
title: "fuck again",
author: 'leo'
}
print(x)