0% found this document useful (0 votes)
91 views

TypeScript Interfaces

TypeScript allows for: 1. Interfaces to describe the shape of objects and extend existing interfaces. 2. Optional properties, functions as properties (getters/setters), and indexing signatures to describe additional properties. 3. Generics to make interfaces accept different types by specifying type parameters.

Uploaded by

Eric Le
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views

TypeScript Interfaces

TypeScript allows for: 1. Interfaces to describe the shape of objects and extend existing interfaces. 2. Optional properties, functions as properties (getters/setters), and indexing signatures to describe additional properties. 3. Generics to make interfaces accept different types by specifying type parameters.

Uploaded by

Eric Le
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

TypeScript

Overloads
Cheat Sheet
Common Syntax Optionally take properties from

existing interface or type

A callable interface can have multiple definitions

for different sets of parameters

Interface interface JSONResponse extends Response, HTTPAble {

version: number;

interface Expect {

JSDoc comment attached to show in editors


h
(matc er: boolean): strin g

Key points (matcher: string): boolean;

/** In bytes */

}
Used to describe the shape of payloadSize: number;

This property might not be on the object


objects, and can be extended by
others.

Get & Set


outOfStock?: boolean;

These are two ways to describe a

property which is a function


Almost everything in JavaScript is
an object and interface is built update: (retryTimes: number) => void;

Objects can have custom getters or setters


to match their runtime behavior. update(retryTimes: number): void;

interface Ruler {

You can call this object via () - ( functions get size(): numbe r

(): JSONResponse

in JS are objects which can be called )


set size(value: number | string);

Built-in Type Primitives }

new(s: string): JSONResponse;

You can use new on the object

this interface describes


boolean, string, number,
undefined, null, any, Usage
[key: string]: number;

unknown, never, void, Any property not described already is assumed

bigint, symbol to exist, and all properties must be numbers const r: Ruler = ...

readonly body: string;


.
r size = 12

Common Built-in JS Objects } r.size = "36"

Tells TypeScript that a property

can not be changed


Date, Error, Array, Map,
Set, Regexp, Promise

Type Literals Extension via merging


Object:
Generics Type parameter
Interfaces are merged, so multiple declarations will
{ field: string }
 add ne w fields to the type definition.
Declare a type which can change in your interface
Function:

interface API all {


C
(arg: number) => string
C
interface API all<Response> {
data: Response

Arrays:

data: Response

string[] or Array<string>

}
Tuple:
U sed here
C
interface API all {

[string, number] Usage


error?: Error

C
const api: API all<Artwork all> = C ...
}

Avoid
api data . // Artwork
Sets a constraint on the type

Object, String, Number, Boolean which means only types with a

You can constrain what types are accepted into the generic ‘ ’
status property can be used
Class conformance
parameter via the extends keyword.

C
interface API all<Response extends { status: number }> {
You can ensure a class conforms to an interface via implements:
data: Response

interface Syncable { sync(): void }

}
class Account implements Syncable { ... }
C
const api: API all<Artwork all> = C ...

.
api data status.

You might also like