DEV Community

Cover image for Type vs Interface in Typescript

Type vs Interface in Typescript

vicradon profile image Osinachi Chukwujama ・1 min read

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.


Editor guide
rconr007 profile image

Thanks this seems very handy.

ucavalcante profile image
Ulisses Cavalcante

Nice approach.

aiosifelis profile image
Andreas Iosifelis

Very useful. Thanks!

jwp profile image
John Peters

Don't forget the Class. No explicit interface needed but acts just like an interface.