typescript interface or type code example

Example 1: typescript interface function

interface IEmployee {
    empCode: number;
    empName: string;
    getSalary: (number) => number; // arrow function
    getManagerName(number): string; 
}

Example 2: typescript class interface

interface IPerson {
  name: string
  age: number
  hobby?: string[]
}

class Person implements IPerson {
  name: string
  age: number
  hobby?: string[]

  constructor(name: string, age: number, hobby: string[]) {
    this.name = name
    this.age = age
    this.hobby = hobby
  }
}

const output = new Person('john doe', 23, ['swimming', 'traveling', 'badminton'])
console.log(output)

Example 3: typescript type vs interface

// Types are used to enforce the data type of a variable
// For example:

type Weekday = 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';

let day1: Weekday = 'Monday';  // OK
let day2: Weekday = 'January'; // ERROR: 'January' is not assignable to type 'Weekday'

// Interfaces are used to enforce the shape of an object
// For example:

interface Person {
  firstName: string;
  lastName: string;
  age: number;
}

// OK
let person1: Person = {
    firstName: 'James',
    lastName: 'Smith',
    age: 30
}

// ERROR: property 'age' is missing
let person2: Person = {
    firstName: 'Mary',
    lastName: 'Williams'
}

// NOTE: Technically, you can use types to enforce the shape of objects,
//       but that's not what they are intended for.

// More details: https://www.typescriptlang.org/docs/handbook/advanced-types.html

Example 4: typescript type interface

//INTERFACE	                                TYPE
interface Animal {	                        type Animal = {
    name: string;	                            name: string;
}	                                        }
interface Bear extends Animal {	            type Bear = Animal & { 
    honey: boolean;	                            honey: Boolean;
}	                                        }

const bear = getBear();	                    const bear = getBear();
bear.name;	                                bear.name;
bear.honey;	                                bear.honey;