Last active
March 1, 2022 06:00
-
-
Save 0xsonu/003df70fffed827f13e4c43a3bba845a to your computer and use it in GitHub Desktop.
Basic intro to TypeScript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Basic Types | |
let id: number = 5 | |
let company: string = 'SK Dominator' | |
let isPublished: boolean = true | |
let x: any = 'Hello' | |
let ids: number[] = [1, 2, 3, 4, 5] | |
let arr: any[] = [1, true, 'Hello'] | |
// Tuple | |
let person: [number, string, boolean] = [1, 'Sonu', true] | |
// Tuple Array | |
let employees: [number, string][] | |
employee = [ | |
[1, 'Sonu'], | |
[2, 'Swajeet'], | |
[3, 'Ankit'], | |
] | |
// Union | |
let pid: string | number | |
pid = '22' | |
// Enum | |
enum Direction1 { | |
Up = 1, | |
Down, | |
Left, | |
Right, | |
} | |
enum Direction2 { | |
Up = 'Up', | |
Down = 'Down', | |
Left = 'Left', | |
Right = 'Right', | |
} | |
// Objects | |
type User = { | |
id: number | |
name: string | |
} | |
const user: User = { | |
id: 1, | |
name: 'Sonu Kumar', | |
} | |
// Type Assertion | |
let cid: any = 1 | |
// let customerId = <number>cid | |
let customerId = cid as number | |
// Functions | |
function addNum(x: number, y: number): number { | |
return x + y | |
} | |
// Void | |
function log(message: string | number): void { | |
console.log(message) | |
} | |
// Interfaces | |
interface UserInterface { | |
readonly id: number | |
name: string | |
age?: number | |
} | |
const user1: UserInterface = { | |
id: 1, | |
name: 'Sonu', | |
} | |
interface MathFunc { | |
(x: number, y: number): number | |
} | |
const add: MathFunc = (x: number, y: number): number => x + y | |
const sub: MathFunc = (x: number, y: number): number => x - y | |
interface PersonInterface { | |
id: number | |
name: string | |
register(): string | |
} | |
// Classes | |
class Person implements PersonInterface { | |
id: number | |
name: string | |
constructor(id: number, name: string) { | |
this.id = id | |
this.name = name | |
} | |
register() { | |
return `${this.name} is now registered` | |
} | |
} | |
const brad = new Person(1, 'Sonu Kumar') | |
const mike = new Person(2, 'Swajeet Swarankar') | |
// Subclasses | |
class Employee extends Person { | |
position: string | |
constructor(id: number, name: string, position: string) { | |
super(id, name) | |
this.position = position | |
} | |
} | |
const emp = new Employee(3, 'Sonu', 'Developer') | |
// Generics | |
function getArray<T>(items: T[]): T[] { | |
return new Array().concat(items) | |
} | |
let numArray = getArray<number>([1, 2, 3, 4]) | |
let strArray = getArray<string>(['Sonu', 'Ankit', 'Swajeet']) | |
strArray.push(1) // Throws error |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment