Code Lab

Response interface

EasyTypeScript types5 min

An API returns a user with the fields id (number) and name (string). The field phone (string) is not always there. Complete the interface User and write the function contactLine(user). It returns a string like Ann: +44 20 7946 0000, and Bob: no phone for a user without a phone.

Do not change the code at the bottom. The correct calls there must compile, and each line after @ts-expect-error must stay a type error.

Examples

contactLine({ id: 1, name: 'Ann', phone: '+44 20 7946 0000' })

Returns 'Ann: +44 20 7946 0000'

The name, a colon and the phone.
contactLine({ id: 2, name: 'Bob' })

Returns 'Bob: no phone'

There is no phone, so `no phone` takes its place.

Source

Function
Loading the editor...
  1. InputcontactLine({ id: 1, name: 'Ann', phone: '+44 20 7946 0000' })
    Expected'Ann: +44 20 7946 0000'
  2. InputcontactLine({ id: 2, name: 'Bob' })
    Expected'Bob: no phone'

Hidden tests run on Submit.