📖 Scenario: You are building a simple program to manage a list of books in a library. Each book has a title and an author.
🎯 Goal: Create a type alias for a book object, then use it to define a list of books and print their titles.
📋 What You'll Learn
Create a type alias called Book with properties title and author, both strings.
Create a variable called library which is an array of Book objects.
Add at least two books to the library array with exact titles and authors.
Use a for loop to print each book's title.
💡 Why This Matters
🌍 Real World
Type aliases help you clearly define the shape of data objects, making your code easier to understand and less error-prone.
💼 Career
Many programming jobs require working with typed data structures to build reliable applications, especially in TypeScript.
Progress0 / 4 steps
1
Create the Book type alias
Create a type alias called Book with two string properties: title and author.
Typescript
Hint
Use the type keyword to create a type alias with properties.
2
Create the library array
Create a variable called library that is an array of Book objects. Add these two books exactly: { title: "The Hobbit", author: "J.R.R. Tolkien" } and { title: "1984", author: "George Orwell" }.
Typescript
Hint
Use const library: Book[] = [...] to create the array with the two book objects.
3
Loop through library to print titles
Use a for loop with variable book to iterate over library and print each book's title using console.log.
Typescript
Hint
Use for (const book of library) to loop and console.log(book.title) to print.
4
Print the book titles
Run the program to print the titles of the books in library. The output should be exactly: The Hobbit 1984
Typescript
Hint
Run the program and check the console output matches the two book titles on separate lines.
Practice
(1/5)
1. What is the main purpose of creating a type alias in TypeScript?
easy
A. To import external modules
B. To create a new variable
C. To define a function
D. To give a new name to a type for easier reuse
Solution
Step 1: Understand what a type alias does
A type alias creates a new name for an existing type, making code easier to read and reuse.
Step 2: Compare options with the definition
Only To give a new name to a type for easier reuse correctly describes this purpose; others describe unrelated concepts.
Final Answer:
To give a new name to a type for easier reuse -> Option D
Quick Check:
Type alias = new name for type [OK]
Hint: Type aliases rename types to simplify code [OK]
Common Mistakes:
Confusing type alias with variable declaration
Thinking type alias creates new data
Mixing type alias with function definitions
2. Which of the following is the correct syntax to create a type alias named Age for the type number?
easy
A. alias Age: number;
B. type Age = number;
C. let Age: number;
D. type Age == number;
Solution
Step 1: Recall TypeScript syntax for type aliases
The correct syntax uses the keyword type, followed by the alias name, an equals sign, and the type.
Step 2: Check each option
type Age = number; matches the correct syntax exactly. Options B, C, and D have syntax errors or wrong keywords.
Final Answer:
type Age = number; -> Option B
Quick Check:
type alias syntax = type Name = Type [OK]
Hint: Use 'type Name = Type;' to create aliases [OK]
Common Mistakes:
Using 'alias' instead of 'type'
Using '==' instead of '='
Confusing type alias with variable declaration
3. What will be the output of this TypeScript code?
type ID = string | number;
function printId(id: ID) {
console.log(typeof id);
}
printId(123);
printId('abc');
medium
A. Error at compile time
B. string
number
C. number
string
D. ID
ID
Solution
Step 1: Understand the type alias and function behavior
The alias ID allows string or number. The function prints the type of the argument.
Step 2: Trace the function calls
Calling printId(123) prints 'number'. Calling printId('abc') prints 'string'.
Final Answer:
number
string -> Option C
Quick Check:
typeof 123 = number, typeof 'abc' = string [OK]
Hint: Check typeof values for union type inputs [OK]
Common Mistakes:
Assuming type alias changes runtime behavior
Expecting compile error for union types
Mixing order of printed types
4. Identify the error in this TypeScript code:
type User = {
name: string;
age: number;
}
const user: User = {
name: 'Alice',
age: '25'
};
medium
A. Property 'age' should be a number, not a string
B. Missing semicolon after type alias
C. Type alias name cannot be 'User'
D. Object properties must be declared with 'let'
Solution
Step 1: Check the type alias definition
The alias User expects age to be a number.
Step 2: Check the object assigned to user
The object has age: '25', which is a string, causing a type error.
Final Answer:
Property 'age' should be a number, not a string -> Option A
Quick Check:
Type mismatch in object property [OK]
Hint: Match property types exactly in objects [OK]
Common Mistakes:
Ignoring type mismatch in object properties
Thinking semicolon is mandatory after type alias
Confusing variable declaration rules with type alias
5. Given these type aliases:
type Point = { x: number; y: number };
type Circle = { center: Point; radius: number };
type Shape = Circle | Point;
Which of the following is a valid Shape object?
hard
A. { center: { x: 0, y: 0 }, radius: 5 }
B. { x: 0, y: 0, radius: 5 }
C. { center: { x: 0 }, radius: 5 }
D. { x: '0', y: 0 }
Solution
Step 1: Understand the type aliases
Point is an object with x and y as numbers. Circle has a center of type Point and a radius number. Shape can be either.
Step 2: Check each option against the types
{ center: { x: 0, y: 0 }, radius: 5 } matches Circle exactly. { x: 0, y: 0, radius: 5 } has extra radius on a Point shape, invalid. { center: { x: 0 }, radius: 5 } has incomplete center. { x: '0', y: 0 } has x as string, invalid.
Final Answer:
{ center: { x: 0, y: 0 }, radius: 5 } -> Option A
Quick Check:
Valid Shape = Circle or Point matching types [OK]
Hint: Match object shape exactly for union types [OK]
Common Mistakes:
Mixing properties of union types incorrectly
Using wrong property types inside objects
Assuming partial objects are valid
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.