Last active
January 22, 2023 22:47
-
-
Save travishorn/e2a174dff566e02396db18a2a37f3514 to your computer and use it in GitHub Desktop.
TypeScript Generics
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
function getFilledArray<T>(value: T, n: number): T[] { | |
return Array(n).fill(value); | |
} | |
let stringArray: string[]; | |
let numberArray: number[]; | |
let personArray: {name: string, age: number}[]; | |
let coordinateArray: [number, number][]; | |
// Write your code below: | |
stringArray = getFilledArray<string>('hi', 6); | |
numberArray = getFilledArray<number>(9, 6); | |
personArray = getFilledArray<{name: string, age: number}>({name: 'J. Dean', age: 24}, 6); | |
coordinateArray = getFilledArray<[number, number]>([3,4], 6); |
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
type Human = {name: string, job: string}; | |
type Dog = {name: string, tailWagSpeed: number}; | |
type Family<T> = { | |
parents: [T, T], mate: T, children: T[] | |
}; | |
//Do not change the code above this line. | |
//Provide type annotations for the variables below: | |
let theFamily: Family<number> = { | |
parents: [3, 4], mate: 9, children: [5, 30, 121] | |
}; | |
let someFamily: Family<boolean> = { | |
parents: [true, true], mate: false, | |
children: [false, false, true, true] | |
}; | |
let aFamily: Family<Human> = { | |
parents: [ | |
{name: 'Mom', job: 'software engineer'}, | |
{name: 'Dad', job: 'coding engineer'} | |
], | |
mate: {name: 'Matesky', job: 'engineering coder'}, | |
children: [{name: 'Babesky', job: 'none'}] | |
}; | |
let anotherFamily: Family<Dog> = { | |
parents: [ | |
{name: 'Momo', tailWagSpeed: 3}, | |
{name: 'Dado', tailWagSpeed: 100} | |
], | |
mate: {name: 'Cheems', tailWagSpeed: 7}, | |
children: [ | |
{name: 'Puppin', tailWagSpeed: 0.001}, | |
{name: 'Puppenaut', tailWagSpeed: 0.0001}, | |
{name: 'Puppenator', tailWagSpeed: 0.01} | |
] | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment