Type vs Interface in Typescript

Subscribe to my newsletter and never miss my upcoming articles

Typescript offers two ways to define types. Either Type-Aliases or Interfaces. The choice of which to use depends on the complexity of the type you want to define.

For most cases, a Type-Alias would get the job done. Most things offered by interfaces are also available in the Type-Alias API. Let's see an example

Extending types

With interfaces, you could do this

interface Human {
  height: number,
  age: number,
  name: string
}

interface Woman extends Human {
  canConcieve: boolean
}

Applying the same logic using Type-Aliases would be

type Human = {
  height: number,
  age: number,
  hairColor: string
}

type Woman = {
  canConcieve: boolean
}

const Chisom: Human & Woman = {
  height: 1.5,
  age: 20,
  hairColor: 'brown',
  canConcieve: true
}

People who prefer functional-style programming to Object-Oriented Programming may find Type-Aliases to be a better approach. Loosely defined types that can be combined.

Comments (1)

Luiz Filipe da Silva's photo

Good explanation about it. Thanks for sharing!