Skip to main content Link Search Menu Expand Document (external link)

Basics

Common stuff

const name: string = 'your name'

const fun:({name: string}) => void = ({name}) => {}
or
const fun = ({name}:{name: string}): void => {}

const fun: (a: number, b: number) => boolean = (a,b) => {return true}
or
const fun = (a: number, b: number): boolean => { return true }

Interface

interface IProps {
    name: string
    age: number
}

Extends

interface IFunProps {
    fun: (a: string) => void //function type
}

interface IProps extends IFunProps {
    name: string
    age: number
}

Interface overload

interface IProps {
    name: string
    age: number
}

interface IProps {
    fun: (a: string) => void
}

This is same as below

interface IProps {
    name: string
    age: number
    fun: (a: string) => void
}

Type

type Props = {
    name: string
    age: number
    fun: (a: string) => void
}

Union

 type USAddress = {
    street: string
    state: string
 }
 type CanadaAddress = {
    street: string
    province: street
 }
 type Address = CanadaAddress | USAddress