Last Updated: November 21, 2025
Basic Types
| Type | Example |
|---|---|
string
|
let name: string = 'John' |
number
|
let age: number = 30 |
boolean
|
let isActive: boolean = true |
array
|
let items: string[] = ['a', 'b'] |
tuple
|
let pair: [string, number] = ['age', 30] |
enum
|
enum Color {Red, Green, Blue} |
any
|
let data: any = 'anything' |
void
|
function log(): void {...} |
null/undefined
|
let u: undefined = undefined |
Interfaces
interface User {
name: string;
age: number;
email?: string; // Optional property
readonly id: number; // Read-only
}
const user: User = {
name: "John",
age: 30,
id: 1
};
// Extending interfaces
interface Employee extends User {
department: string;
}
Functions
// Function with typed parameters and return
function add(a: number, b: number): number {
return a + b;
}
// Arrow function
const multiply = (a: number, b: number): number => a * b;
// Optional and default parameters
function greet(name: string, greeting: string = "Hello"): string {
return `${greeting}, ${name}`;
}
// Rest parameters
function sum(...numbers: number[]): number {
return numbers.reduce((a, b) => a + b, 0);
}
Generics
// Generic function
function identity<T>(arg: T): T {
return arg;
}
// Generic interface
interface Box<T> {
value: T;
}
// Generic class
class Container<T> {
private value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
Type Assertions & Union Types
// Type assertion
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
// Union types
let value: string | number;
value = "hello";
value = 42;
// Type guards
function isString(value: string | number): value is string {
return typeof value === "string";
}
💡 Pro Tip:
Use strict mode in tsconfig.json for better type safety!