Type aliases let you give a simple name to a complex type. This makes your code easier to read and reuse.
When you want to name a complex type like a union or an object.
When you use the same type in many places and want to avoid repeating it.
When you want to make your code clearer by giving meaningful names to types.
When you want to simplify function signatures by using a type alias.
When you want to prepare your code for future changes by centralizing type definitions.
Syntax
Typescript
type AliasName = ExistingType;
Use type keyword followed by the alias name and the type it represents.
Type aliases can represent primitives, unions, objects, or any other types.
Examples
This creates a new name ID for the type number.
Typescript
type ID = number;
This creates a new name Name for the type string.
Typescript
type Name = string;
This creates a new name User for an object type with id and name.
Typescript
type User = { id: number; name: string };
This creates a new name Status for a union of string literals.
Typescript
type Status = 'active' | 'inactive' | 'pending';
Sample Program
This program uses type aliases ID and User to make the code easier to read. The function printUser prints user details.
Typescript
type ID = number;
type User = { id: ID; name: string };
function printUser(user: User) {
console.log(`User ID: ${user.id}, Name: ${user.name}`);
}
const user1: User = { id: 101, name: 'Alice' };
printUser(user1);
OutputSuccess
Important Notes
Type aliases do not create new types, they just give a new name to existing types.
Use type aliases to improve code clarity and reduce repetition.
Summary
Type aliases give simple names to complex types.
They make code easier to read and maintain.
Use them to avoid repeating complex type definitions.
Practice
(1/5)
1. Why do we use type aliases in TypeScript?
easy
A. To declare variables without types
B. To execute code faster at runtime
C. To replace interfaces completely
D. To give a simple name to a complex type for easier reuse
Solution
Step 1: Understand the purpose of type aliases
Type aliases let you create a new name for a type, especially useful for complex types.
Step 2: Compare with other options
They do not affect runtime speed, do not replace interfaces fully, and are not for declaring variables without types.
Final Answer:
To give a simple name to a complex type for easier reuse -> Option D
Quick Check:
Type aliases simplify complex types = A [OK]
Hint: Type aliases simplify complex types for reuse [OK]
Common Mistakes:
Thinking type aliases improve runtime speed
Confusing type aliases with interfaces
Using type aliases to declare variables without types
2. Which of the following is the correct syntax to create a type alias for an object with properties name (string) and age (number)?
easy
A. type Person = { name: string; age: number };
B. alias Person = { name: string; age: number };
C. interface Person = { name: string; age: number };
D. type Person: { name: string; age: number };
Solution
Step 1: Recall correct type alias syntax
Type aliases use the keyword type followed by the name, equals sign, and the type definition.
Step 2: Check each option
type Person = { name: string; age: number }; matches the correct syntax. Options A, B, and C use wrong keywords or punctuation. interface Person = { name: string; age: number }; uses interface, not a type alias.
Final Answer:
type Person = { name: string; age: number }; -> Option A
Quick Check:
Correct type alias syntax = D [OK]
Hint: Remember: type alias uses 'type Name = Type;' [OK]
Common Mistakes:
Using 'alias' instead of 'type'
Confusing interfaces with type aliases
Using colon ':' instead of equals '='
3. What will be the output of this TypeScript code?
type ID = string | number;
function printId(id: ID) {
if (typeof id === 'string') {
return id.toUpperCase();
} else {
return id + 1;
}
}
printId(5);
medium
A. 5
B. 6
C. Error: toUpperCase is not a function
D. undefined
Solution
Step 1: Understand the type alias and function logic
The type alias ID allows string or number. The function checks if id is a string, then calls toUpperCase(). Otherwise, it adds 1.
Step 2: Trace the function call with printId(5)
Since 5 is a number, it goes to the else branch and returns 5 + 1 = 6.
Final Answer:
6 -> Option B
Quick Check:
Number input adds 1 = 6 [OK]
Hint: Check type conditions carefully to predict output [OK]
Common Mistakes:
Assuming 5 is treated as string
Expecting error from toUpperCase on number
Ignoring type narrowing in if-else
4. Identify the error in this TypeScript code using a type alias:
type User = {
name: string;
age: number;
};
const user: User = {
name: "Alice",
age: "25"
};
medium
A. Name property should be a number
B. Type alias syntax is incorrect
C. Age property should be a number, not a string
D. Missing semicolon after user object
Solution
Step 1: Check the type alias definition
The User type requires age to be a number.
Step 2: Check the object assigned to user
The age property is given as a string "25", which conflicts with the number type.
Final Answer:
Age property should be a number, not a string -> Option C
Quick Check:
Type mismatch in property = B [OK]
Hint: Match property types exactly as defined [OK]
Common Mistakes:
Ignoring type mismatch errors
Thinking semicolon is mandatory after object
Confusing type alias syntax with interface
5. You want to create a reusable type alias for a function that takes a string and returns a boolean. Which of these is the best way to define it and use it in a function?
hard
A. type StringCheck = (input: string) => boolean;
const isLong: StringCheck = input => input.length > 5;
B. type StringCheck = string => boolean;
const isLong: StringCheck = input => input.length > 5;
C. type StringCheck = (string) => bool;
const isLong: StringCheck = input => input.length > 5;
D. type StringCheck = (input: string) => bool;
const isLong: StringCheck = input => input.length > 5;
Solution
Step 1: Review correct function type alias syntax
Function types use the form (param: type) => returnType. Boolean type is boolean in TypeScript.
Step 2: Check each option for syntax correctness
type StringCheck = (input: string) => boolean;
const isLong: StringCheck = input => input.length > 5; correctly defines the type alias and uses it. Options A, B, and D have incorrect syntax for function types. type StringCheck = (input: string) => bool;
const isLong: StringCheck = input => input.length > 5; uses bool which is invalid in TypeScript.
Final Answer:
type StringCheck = (input: string) => boolean;
const isLong: StringCheck = input => input.length > 5; -> Option A
Quick Check:
Correct function type alias syntax = C [OK]
Hint: Function types use (param: type) => returnType syntax [OK]
Common Mistakes:
Using 'bool' instead of 'boolean'
Omitting parameter names or types
Incorrect arrow function type syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.