giritharan
Tue May 07 2024
Typescript Learning
Variable definition:
In Typescript we can specify the type string, number and boolean like
Moreover, if we don't specify the type typescript automatically detects the type by itself. But end of the defining the type was a good convention.
Function Definition:
• For defining a function we can specify the function parameters type. Along with that we can able to set the default value. And also the return value.
• For Arrow function:
Why don't use
• Using
Array:
With the help of the array, we can store number, string and boolean values separately and mixed.
Void And Never:
•
•
Object Type:
•
• If we want mentioned as an optional prop we can do that with the help of
Union Types:
• It means type can be formed in two or more types, which means values can be anything from the union value.
Type Aliases
• When can use both object type and union type but if we want use more than once we can use
• Moreover on the type, we can able to do extend the values.
• From above you can see that the userDetails inherits the user and role props without adding extra value. So that helps to keep DRY over time.
Interface:
• Interface is also similar in concept to type._ it's another way to name an object type.
• It allows the extending feature.
• The Only difference is type not available for re-opening for adding new properties.
Readonly and Optional:
• with the help of that, we can mark the value as read-only or optional.
• If we try to access id
Tuples:
• Tuples are a data structure that allows you to store a fixed-size, ordered collection of elements.
• Each element in a tuple may have a different data type. They are similar to arrays, but their size and types are fixed once they are defined.
• In typles we can modify elements of the tuple using array method with different types. It doesn't show any warning we always need to be aware of it.
Enums:
• Enums in TypeScript are usually _used to represent a determined number of options for a given value.
• TypeScript provides both
• Numeric enums:
▪︎ By default enum value starts from
• We can explicitly change the enum value
• so from now value goes like 11, 12 in upstream
• String enums:
◦ String enums are similar to numbers, But here we can specify string instead of numeric
• Heterogeneous enums:
◦ We can mix up string and numeric on enum. But After string, if numeric get started we need to mention the numeric value for the first one.
• Remaining value can typescript will handles.
#typescript #javascript
Variable definition:
In Typescript we can specify the type string, number and boolean like
let myName: string = "Vijay";
let age: number = 20;
let isActive: boolean = false;
Moreover, if we don't specify the type typescript automatically detects the type by itself. But end of the defining the type was a good convention.
Function Definition:
• For defining a function we can specify the function parameters type. Along with that we can able to set the default value. And also the return value.
function sum(a: number, b: number = 2): number {
return a + b;
}
• For Arrow function:
let sum = (a: number, b: number = 2): number => a + b;
Why don't use
any
:• Using
any
in TypeScript bypasses type checking but undermines TypeScript's static typing advantages. It's better to specify types explicitly for safer and more maintainable code.Array:
With the help of the array, we can store number, string and boolean values separately and mixed.
For String
let users: string[] = ["a", "b", "c", "d]
For Number
let count: number[] = [1, 2, 3, 4]
For boolean
let isActive: boolean[] = [true, false]
For Mixed array
let allDate: (string | number)[] = ["a", "b", "c", 1]
Here Array contains only integers and strings
Void And Never:
•
void
is a type that represents the absence of returning value. It's often used as the return type of function that doesn't return any value.
function logError(msg: string): void {
console.log(msg);
}
•
never
represents the type of values that never occur:. It's typically used as the return type of functions that never return (i.e., always throw an error).
function throwError(message: string): never {
throw new Error(message);
}
Object Type:
•
Object Types
is used to pass the object as a parameter in the functions.
function fetchData(pt: { x: number; y: number }) {
return pt;
}
fetchData({ x: 3, y: 7 });
• If we want mentioned as an optional prop we can do that with the help of
?
operator
function fetchData(pt: { x: number; y?: number }) {
return pt;
}
fetchData({ x: 3 });
Union Types:
• It means type can be formed in two or more types, which means values can be anything from the union value.
function sum(a: string | number) {
return a;
}
Here you can see value can be anything string or number
Type Aliases
• When can use both object type and union type but if we want use more than once we can use
Type Aliases
or Interface
.
type User = {
name: string;
age: number;
}
function displayUser(prop: User) {
console.log(prop.name);
console.log(prop.age);
}
displayUser({name: 'John', age: 22})
• Moreover on the type, we can able to do extend the values.
type User = {
name: string;
age: number;
}
type Role = {
role: string
}
type UserDeatils = User & Role & {
address: string;
}
• From above you can see that the userDetails inherits the user and role props without adding extra value. So that helps to keep DRY over time.
Interface:
• Interface is also similar in concept to type._ it's another way to name an object type.
interface User {
name: string;
age: number;
}
function displayUser(prop: User) {
console.log(prop.name);
console.log(prop.age);
}
displayUser({name: 'John', age: 22})
• It allows the extending feature.
interface User {
name: string;
age: number;
}
interface Role {
role: string
}
interface userDetails extends User, Role {
address: string;
}
• The Only difference is type not available for re-opening for adding new properties.
Readonly and Optional:
• with the help of that, we can mark the value as read-only or optional.
type User = {
readonly id: string;
name: string;
phone: number;
isActive: boolean;
email?: string;
};
• If we try to access id
typescript will throw an exception
. Also, email is not present on obj it does not make exceptions.Tuples:
• Tuples are a data structure that allows you to store a fixed-size, ordered collection of elements.
• Each element in a tuple may have a different data type. They are similar to arrays, but their size and types are fixed once they are defined.
let myTuple: [string, number, boolean];
myTuple = ['hello', 10, true];
• In typles we can modify elements of the tuple using array method with different types. It doesn't show any warning we always need to be aware of it.
Enums:
• Enums in TypeScript are usually _used to represent a determined number of options for a given value.
• TypeScript provides both
numeric and string-based enums
• Numeric enums:
▪︎ By default enum value starts from
0
until we explicitly mention something:
const enum UserType {
ADMIN,
USER,
GUEST,
}
• We can explicitly change the enum value
const enum UserType {
ADMIN = 10,
USER,
GUEST,
}
• so from now value goes like 11, 12 in upstream
• String enums:
◦ String enums are similar to numbers, But here we can specify string instead of numeric
const enum UserType {
ADMIN = "admin",
USER = "user",
GUEST = "guest",
}
• Heterogeneous enums:
◦ We can mix up string and numeric on enum. But After string, if numeric get started we need to mention the numeric value for the first one.
const enum UserType {
ADMIN = "admin",
USER = 0,
GUEST,
}
• Remaining value can typescript will handles.
#typescript #javascript