DEV Community

pawan deore
pawan deore

Posted on

1 1

Learning TypeScript personal notes

let str: string = 'pawan';

let no:number = 30

let flag: boolean  = true;

let d: null = null;

let e: undefined = undefined;


console.log(no)

console.log(str)



// Array


const cars:string[] = ['a','b','c']

const nums:number[] = [1,2,3,4]

const bool: boolean[] = [true, false];


function printCar(models : string[]){
    models.forEach(element => {
        console.log(element)
    });
}

printCar(cars)


function callIt(model: number | string){
    console.log(model)
}

callIt('true')





// TYPE

type mo = number | string



function printtCar(model: mo){
    console.log(model)
}

printtCar(2)



// Function Type


function pr(cb: Function){
    cb(20,'bmw')
}

type voo = number | string

pr((no : number, str : String )=> console.log(no, str))






// Interfaces
// large scale applications



type Car =  {
    make: string,
    model : string | number,
    sedan: boolean
}

interface Carr  {
    make: string;
    model : string | number;
    sedan: boolean;

    //functions
    accelerate : () => void;
    decellarate() : void;
}


// Objects

function voe(obj_name: {param_a?: string, param_b : number}):void{
console.log(obj_name.param_b)
}

// interface Bv {
//     nm: string
// }

// interface b2 extends By{
//     nm2: number
// }




// Special Types


let car:any = 'bmw'

car = 'honda'
car = true
car = 22



// unknown 

// let a: unknown = document.getElementById('my-element');
// we can throw what ever we want with unknow type


// void
// function returns nothing



// never
function crash(model:number): never{
    throw new Error('car crash')
}
// it doesn't never returns values / anything not even void  maybe kill process | terminate thing 





// Literal types   ( if declared with const )

type Bike = 'NOO' | 123

// const bike: Bike = 'wha';
const bike: Bike = 'NOO';





// Literal interface

const care = {
    make: "honda" as "honda"
}

// care.make = 'mbw'
care.make = 'honda'





// Tuples 

// only last paramater optional allowed

type CARRR = [number | boolean,string?];


// make readonly
type CARRR2 = readonly [number | boolean,string?];

// OR

let cDetails = [2021, 'bmw'] as const;
// cDetails[1] = 'akj';



const ar: CARRR = [1,'2']
console.log('tuples, -> '+ ar)


// maybe use tuple for API calls






// Rest Parameter

type carTuple = [number,string, ...number[]]

const car3 = [2021, 'bmw',23,123,34];


console.log(car3)





// IMPORTANT


// TYPE ASSERTATION    explicility mentioning when don't know

const myCanvar = document.getElementById('canvas') as HTMLCanvasElement;


// NULL ASSERTATION  when you don't have confirmation but sure about values types use -> !
function doSome(model: number | null){
    model!.toString()
}

doSome(null)


// IMPOSSIBLE ASSERTATION

type YO = string | null

const car1 = 'form' as YO;




// IMPORTANT






// export {}


Enter fullscreen mode Exit fullscreen mode

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

Postgres on Neon - Get the Free Plan

No credit card required. The database you love, on a serverless platform designed to help you build faster.

Get Postgres on Neon