Typescript
Typescript setup
install :
npm i -g typescript
compile :
tsc index.ts
compile and run :
npx ts-node <filename>.ts
Init project by
tsc --init
Type System
// bsaic data types let id: number = 1; let myname: string = 'uday yadav'; let isAgeStrict: boolean = false; let edu: object = { collegeName: 'ADGITM', courseName: 'CSE' } let something: any = 'me'; something = 10; let subjects: string[] = ['ada', 'java', 'se', 'csp', 'im', 'dcom']; let arr: any[] = [1, true, 'uday'] // tuple let person: [string, number, boolean] = ['uday', 20, true]; // tuple array let emp : [number, string] [] = [ [1,'uday'], [2,'another uday'] ]; // union let idx : string | number = 'uday'; idx = 10; //enum enum Direction { Up = 1, Down, Right, Left } console.log(Direction.Down); // 2 enum DirectionWithString { Up = 'Up', Down = 'Down', Right = 'Right', Left = 'Left' } console.log(DirectionWithString.Down) // Down // objects const user : { id : number, userName : string } = { id : 1, userName : 'Uday Yadav' } console.log(user); type AnotherUser = { id : number, userName : string } const anotherUser : AnotherUser = { id : 10, userName : 'Uday yadav' } console.log(anotherUser); // type assertion let cid : any = 1 let customerId = <number> cid; let anotherCustomerId = cid as number; // customerId = true; !! error
Functions
function addNum(x: number, y: number) { return x + y; } addNum(2, 5); function logger(message: string | number): string { return `msg : ${message}`; } console.log(logger('hello world')) console.log(logger(123456789)) interface UserInterface { readonly id: number, username: string age?: number // to make this optional } const userImpl: UserInterface = { id: 1, username: 'John', } // userImpl.id = 1; !! error // interface for functions interface MathFunction { (x: number, y: number): number } const adder: MathFunction = (x: number, y: number) => x + y; function adder2(): MathFunction { return (x: number, y: number) => x + y; } console.log(adder(2, 5)); console.log(adder2()(2, 5));
OOPs in Typescript
interface PersonInterface { id: number personName: string register(): boolean } class Person implements PersonInterface { id: number; // also private, protected personName: string; constructor(id: number, name: string) { this.id = id this.personName = name } register(): boolean { console.log(`msg: ${this.personName} is registered`) return true } } let person = new Person(1, 'John') person.register() class Employee extends Person { position: string constructor(id: number, personName: string, position: string) { super(id, personName); this.position = position } } let emp = new Employee(2, 'Jane', 'developer'); console.log(emp.register())
Generics
function getArray<T>(items: T[]): T[] { return new Array().concat(items); } let numArray = getArray([1, 2, 3]); let strArray = getArray(["a", "b", "c"]); // numArray.push('hello'); !! error
Top comments (0)