Type aliases give a name to a type so you can reuse it easily. Inline types are written directly where you need them without a name.
Type alias vs inline types in Typescript
type TypeName = { property: Type; };
// Inline type example
function func(param: { property: Type }) { }Type aliases use the type keyword followed by a name and an assignment.
Inline types are written directly inside function parameters or variable declarations without a name.
User and uses it to type a variable.type User = {
name: string;
age: number;
};
const user: User = { name: "Alice", age: 30 };function greet(user: { name: string; age: number }) { console.log(`Hello, ${user.name}`); }
type Point = { x: number; y: number };
const origin: Point = { x: 0, y: 0 };const point: { x: number; y: number } = { x: 10, y: 20 };
This program shows how to use a type alias for a product and an inline type for a user object.
type Product = {
id: number;
name: string;
price: number;
};
function printProduct(product: Product) {
console.log(`Product: ${product.name}, Price: $${product.price}`);
}
// Using type alias
const book: Product = { id: 1, name: "Book", price: 9.99 };
printProduct(book);
// Using inline type
function printUser(user: { id: number; username: string }) {
console.log(`User: ${user.username} (ID: ${user.id})`);
}
printUser({ id: 101, username: "john_doe" });Type aliases improve code readability and make it easier to update types in one place.
Inline types are good for quick, one-time use but can get messy if repeated often.
Both type aliases and inline types can describe objects, unions, intersections, and more.
Type aliases give a name to a type for reuse and clarity.
Inline types are written directly where needed without a name.
Use type aliases for repeated or complex types, inline types for simple, one-time use.
Practice
type alias in TypeScript compared to inline types?Solution
Step 1: Understand what a type alias does
A type alias gives a name to a type, so you can use it repeatedly without rewriting the full type.Step 2: Compare with inline types
Inline types are written directly where needed and are not reusable by name, making code less clear if repeated.Final Answer:
It allows reusing the same type definition multiple times with a clear name. -> Option CQuick Check:
Type alias = reusable named type [OK]
- Thinking type aliases affect runtime speed
- Confusing type aliases with runtime error checking
- Believing type aliases remove the need for types
name string and age number?Solution
Step 1: Recall TypeScript type alias syntax
The correct syntax uses the keywordtype, followed by the alias name, an equals sign, and the type definition.Step 2: Check each option
Only type Person = { name: string; age: number }; matches the correct syntax exactly. Others use invalid keywords or symbols.Final Answer:
type Person = { name: string; age: number }; -> Option AQuick Check:
Correct alias syntax = type Name = Type [OK]
- Using 'alias' instead of 'type'
- Using ':=' instead of '='
- Using 'define' keyword which is invalid
type Point = { x: number; y: number };
const p1: Point = { x: 5, y: 10 };
const p2: { x: number; y: number } = { x: 5, y: 10 };
console.log(p1.x === p2.x && p1.y === p2.y);Solution
Step 1: Understand type alias and inline type usage
Bothp1andp2have the same shape: objects withxandynumbers.Step 2: Compare the values
Both objects havex: 5andy: 10, so the comparisonp1.x === p2.x && p1.y === p2.yis true.Final Answer:
true -> Option DQuick Check:
Same shape objects compare equal values = true [OK]
- Thinking type alias creates different runtime objects
- Expecting compile error due to inline vs alias
- Confusing object reference equality with value equality
type User = { id: number; name: string };
const user: User = { id: 1, name: 'Alice', age: 30 };Solution
Step 1: Check the type alias definition
The type aliasUserexpects an object with onlyidandnameproperties.Step 2: Check the assigned object
The object has an extra propertyagewhich is not defined inUser, causing a TypeScript error.Final Answer:
Extra property 'age' is not allowed in the object assigned to type User. -> Option BQuick Check:
Extra properties not in type cause error [OK]
- Ignoring extra properties in object literals
- Thinking semicolon is mandatory after type alias
- Confusing property types in the alias
id (number), name (string), and an optional description (string). Which approach is best and why?Options:
A) Use a type alias for the product type and reuse it.
B) Use inline types everywhere the product is used.
C) Use a class instead of a type alias.
D) Use a union type of string and number for all properties.
Solution
Step 1: Consider reusability and clarity
A product type is used multiple times, so naming it with a type alias improves clarity and reuse.Step 2: Evaluate other options
Inline types cause repetition and clutter. Classes add runtime overhead and are not necessary here. Union types for all properties are incorrect and confusing.Final Answer:
Use a type alias for the product type and reuse it. -> Option AQuick Check:
Reusable complex types = type alias [OK]
- Using inline types repeatedly causing duplication
- Confusing classes with type aliases
- Misusing union types for unrelated properties
Ready to prove it?
Pass the test and this pattern moves unknown
