parent
59d47c5b1e
commit
179bf366cc
5 changed files with 111 additions and 5 deletions
@ -1 +1,16 @@ |
|||||||
# Union types |
# Union Types |
||||||
|
|
||||||
|
Union Types in TypeScript allow you to specify multiple possible types for a single variable or parameter. A union type is written as a vertical bar (|) separated list of types. |
||||||
|
|
||||||
|
For example, consider a function that takes either a string or a number as an argument: |
||||||
|
|
||||||
|
``` |
||||||
|
function combine(input1: string | number, input2: string | number) { |
||||||
|
return input1 + input2; |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Unions Types](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html) |
||||||
|
- [Union Types in TypeScript](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html) |
@ -1 +1,22 @@ |
|||||||
# Intersection types |
# Intersection Types |
||||||
|
|
||||||
|
Intersection Types in TypeScript allow you to combine multiple types into a single type. An intersection type is written as an ampersand (&) separated list of types. |
||||||
|
|
||||||
|
For example, consider an object that has both a name property and a email property: |
||||||
|
|
||||||
|
``` |
||||||
|
interface User { |
||||||
|
name: string; |
||||||
|
email: string; |
||||||
|
} |
||||||
|
|
||||||
|
const user: User = { |
||||||
|
name: 'John Doe', |
||||||
|
email: 'johndoe@example.com' |
||||||
|
}; |
||||||
|
``` |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Intersection Types](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html#intersection-types) |
||||||
|
- [Implement Intersection Types in the Typescript](https://www.youtube.com/watch?v=adr7W5uyIMk) |
@ -1 +1,20 @@ |
|||||||
# Type aliases |
# Type Aliases |
||||||
|
|
||||||
|
A Type Alias in TypeScript allows you to create a new name for a type. |
||||||
|
|
||||||
|
Here's an example: |
||||||
|
|
||||||
|
``` |
||||||
|
type Name = string; |
||||||
|
type Age = number; |
||||||
|
type User = { name: Name; age: Age }; |
||||||
|
|
||||||
|
const user: User = { name: 'John', age: 30 }; |
||||||
|
``` |
||||||
|
|
||||||
|
In the example above, `Name` and `Age` are type aliases for `string` and `number` respectively. And `User` is a type alias for an object with properties `name` of type `Name` and `age` of type `Age`. |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Type Aliases](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#type-aliases) |
||||||
|
- [TypeScript Tutorial - Type Aliases](youtube.com/watch?v=AmpwfbdFYL8) |
@ -1 +1,22 @@ |
|||||||
# Keyof operator |
# Keyof Operator |
||||||
|
|
||||||
|
The keyof operator in TypeScript is used to get the union of keys from an object type. |
||||||
|
Here's an example of how it can be used: |
||||||
|
|
||||||
|
``` |
||||||
|
interface User { |
||||||
|
name: string; |
||||||
|
age: number; |
||||||
|
location: string; |
||||||
|
} |
||||||
|
|
||||||
|
type UserKeys = keyof User; // "name" | "age" | "location" |
||||||
|
const key: UserKeys = "name"; |
||||||
|
``` |
||||||
|
|
||||||
|
In this example, `UserKeys` is a type that represents the union of keys from the `User` interface, which is `"name"` | `"age"` | `"location"`. And a constant named `key` with the type `UserKeys` is declared with the value `"name"`. |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Keyof Type Operator](https://www.typescriptlang.org/docs/handbook/2/keyof-types.html#handbook-content) |
||||||
|
- [Typescript Generics - Understanding the keyof Operator](https://www.youtube.com/watch?v=uy6fw4znJF4) |
@ -1 +1,31 @@ |
|||||||
# Combining types |
# Combining Types |
||||||
|
|
||||||
|
In TypeScript, you can combine types using type union and type intersection. |
||||||
|
|
||||||
|
Type Union: |
||||||
|
The union operator `|` is used to combine two or more types into a single type that represents all the possible types. For example: |
||||||
|
|
||||||
|
``` |
||||||
|
type stringOrNumber = string | number; |
||||||
|
let value: stringOrNumber = "hello"; |
||||||
|
value = 42; |
||||||
|
``` |
||||||
|
|
||||||
|
Type Intersection: |
||||||
|
The intersection operator `&` is used to intersect two or more types into a single type that represents the properties of all the types. For example: |
||||||
|
|
||||||
|
``` |
||||||
|
interface A { |
||||||
|
a: string; |
||||||
|
} |
||||||
|
interface B { |
||||||
|
b: number; |
||||||
|
} |
||||||
|
type AB = A & B; |
||||||
|
let value: AB = { a: "hello", b: 42 }; |
||||||
|
``` |
||||||
|
|
||||||
|
Learn more from the following links: |
||||||
|
|
||||||
|
- [Creating Types from Types](https://www.typescriptlang.org/docs/handbook/2/types-from-types.html#handbook-content) |
||||||
|
- [Typescript - Combining Types with Generic](https://www.youtube.com/watch?v=Z3g8dVFsuMM) |
Loading…
Reference in new issue