DEV Community

Discussion on: TypeScript: The Difference Between Interface and Type

Collapse
 
ninofiliu profile image
Nino Filiu • Edited

Also, an interface can be extended in several locations while a type has to be fully defined in one place. For me that's +100pts for types because when I can be sure by looking at a type def that I have the whole object, while interfaces definitions can be scattered all around, possibly in different files:

// ok
interface IUser { name: string }
interface IUser { age: number }
const ifn = (user: IUser) => `${user.name} is ${user.age} years old`

// error
type TUser = { name: string }
type TUser = TUser & { age: number }

// ok
type TUser = { name: string; age: number }
const tfn = (user: TUser) => `${user.name} is ${user.age} years old`
Enter fullscreen mode Exit fullscreen mode

docs / playground

Collapse
 
saranshk profile image
saransh kataria

Agreed, declaration merging sure can introduce some tricky things.