parent
62905bda7a
commit
7bac3c3444
5 changed files with 133 additions and 5 deletions
@ -1 +1,36 @@ |
|||||||
# Types vs interfaces |
# Types vs Interfaces |
||||||
|
|
||||||
|
In TypeScript, both types and interfaces can be used to define the structure of objects and enforce type checks. However, there are some differences between the two. |
||||||
|
|
||||||
|
Types are used to create a new named type based on an existing type or to combine existing types into a new type. They can be created using the type keyword. For example: |
||||||
|
|
||||||
|
``` |
||||||
|
type Person = { |
||||||
|
name: string; |
||||||
|
age: number; |
||||||
|
}; |
||||||
|
|
||||||
|
const person: Person = { |
||||||
|
name: "John Doe", |
||||||
|
age: 30 |
||||||
|
}; |
||||||
|
``` |
||||||
|
|
||||||
|
Interfaces, on the other hand, are used to describe the structure of objects and classes. They can be created using the interface keyword. For example: |
||||||
|
|
||||||
|
``` |
||||||
|
interface Person { |
||||||
|
name: string; |
||||||
|
age: number; |
||||||
|
} |
||||||
|
|
||||||
|
const person: Person = { |
||||||
|
name: "John Doe", |
||||||
|
age: 30 |
||||||
|
}; |
||||||
|
``` |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Interfaces vs. Type Aliases](https://www.typescriptlang.org/docs/handbook/advanced-types.html#interfaces-vs-type-aliases) |
||||||
|
- [Interfaces vs Types in TypeScript](https://stackoverflow.com/questions/37233735/interfaces-vs-types-in-typescript) |
@ -1 +1,29 @@ |
|||||||
# Extending interfaces |
# Extending Interfaces |
||||||
|
|
||||||
|
In TypeScript, you can extend an interface by creating a new interface that inherits from the original interface using the "extends" keyword. The new interface can include additional properties, methods, or redefine the members of the original interface. |
||||||
|
|
||||||
|
Here is an example: |
||||||
|
|
||||||
|
``` |
||||||
|
interface Shape { |
||||||
|
width: number; |
||||||
|
height: number; |
||||||
|
} |
||||||
|
|
||||||
|
interface Square extends Shape { |
||||||
|
sideLength: number; |
||||||
|
} |
||||||
|
|
||||||
|
let square: Square = { |
||||||
|
width: 10, |
||||||
|
height: 10, |
||||||
|
sideLength: 10 |
||||||
|
}; |
||||||
|
``` |
||||||
|
|
||||||
|
In this example, the Square interface extends the Shape interface and adds an additional property sideLength. A variable of type Square must have all the properties defined in both Shape and Square interfaces. |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Interfaces](https://www.typescriptlang.org/docs/handbook/interfaces.html) |
||||||
|
- [TypeScript - Extending Interfaces](https://www.typescriptlang.org/docs/handbook/interfaces.html#extending-interfaces) |
@ -1 +1,21 @@ |
|||||||
# Interface declaration |
# Interface Declaration |
||||||
|
|
||||||
|
An interface in TypeScript is a blueprint for creating objects with specific structure. An interface defines a set of properties, methods, and events that a class or object must implement. The interface is a contract between objects and classes and can be used to enforce a specific structure for objects in your code. |
||||||
|
|
||||||
|
Here is an example of an interface declaration in TypeScript: |
||||||
|
|
||||||
|
``` |
||||||
|
interface Person { |
||||||
|
firstName: string; |
||||||
|
lastName: string; |
||||||
|
age?: number; |
||||||
|
getFullName(): string; |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
In this example, the Person interface defines four properties: `firstName`, `lastName`, `age`, and a method `getFullName()`. The age property is optional, indicated by the `?` symbol. Any class or object that implements the `Person` interface must have these properties and method. |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Introduction - Declaration Files](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html) |
||||||
|
- [Find and Install Declaration Files](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html#find-and-install-declaration-files) |
@ -1 +1,23 @@ |
|||||||
# Hybrid types |
# Hybrid Types |
||||||
|
|
||||||
|
In TypeScript, a hybrid type is a type that combines multiple types into a single type. The resulting type is considered a union of those types. This allows you to specify that a value can have multiple types, rather than just one. |
||||||
|
|
||||||
|
For example, you can create a hybrid type that can accept either a string or a number: |
||||||
|
|
||||||
|
``` |
||||||
|
type StringOrNumber = string | number; |
||||||
|
``` |
||||||
|
|
||||||
|
Now, a value of type StringOrNumber can be either a string or a number: |
||||||
|
|
||||||
|
``` |
||||||
|
let value: StringOrNumber = 'Hello, world!'; |
||||||
|
value = 42; |
||||||
|
``` |
||||||
|
|
||||||
|
You can also use hybrid types to create more complex types that can represent a combination of several different types of values. |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [TypeScript - Interface Hybrid Types](https://www.logicbig.com/tutorials/misc/typescript/interface-hybrid-types.html) |
||||||
|
- [What is Hybrid types in typescript?](https://www.youtube.com/watch?v=eYAq1A4BsuI) |
@ -1 +1,24 @@ |
|||||||
# Interfaces |
# Interfaces |
||||||
|
|
||||||
|
Interfaces in TypeScript provide a way to define a contract for a type, which includes a set of properties, methods, and events. It's used to enforce a structure for an object, class, or function argument. Interfaces are not transpiled to JavaScript and are only used by TypeScript at compile-time for type-checking purposes. |
||||||
|
|
||||||
|
Here's an example of defining and using an interface in TypeScript: |
||||||
|
|
||||||
|
``` |
||||||
|
interface User { |
||||||
|
name: string; |
||||||
|
age: number; |
||||||
|
} |
||||||
|
|
||||||
|
const user: User = { |
||||||
|
name: 'John Doe', |
||||||
|
age: 30 |
||||||
|
}; |
||||||
|
``` |
||||||
|
|
||||||
|
In this example, the User interface defines the structure of the user object with two properties, name and age. The object is then typed as User using a type-assertion : User. |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [TypeScript - Interfaces](https://www.typescriptlang.org/docs/handbook/interfaces.html) |
||||||
|
- [TypeScript Tutorial - Interfaces](https://www.youtube.com/watch?v=VbW6vWTaHOY) |
Loading…
Reference in new issue