3.5 āύāĻžāϞā§āĻŦāĻ˛Â āĻāĻžāĻāĻĒ
function fun(data: string){
data.toLowerCase();
}
fun(null)
āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻāĻ āĻā§āĻĄāĻāĻž āϰāĻžāύ āĻāϰāϞ⧠āĻāĻŋ āĻā§āύ⧠āϧāϰāĻŖā§āϰ āĻāϰāϰ āĻĻā§āĻāĻžāĻŦā§? āĻā§āĻ āĻāĻŋ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§āύ? āύāĻž, āĻā§āύ⧠āĻāϰāϰ āĻĻā§āĻāĻžāĻŦā§ āύāĻžāĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻā§āϏā§āĻāĻŋāĻāĻļāύā§āϰ āϏāĻŽā§ā§ āĻā§āϰā§āϝāĻžāĻļ āĻāϰāĻŦā§āĨ¤ āĻāĻžāϰāĻŖ āύāĻžāϞ āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻāĻĒāϰ āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāĻž āϝāĻžā§ āύāĻžāĨ¤
āĻāĻŋāύā§āϤ⧠āĻāĻžāĻāĻĒāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϏā§āĻŽāĻžāϰā§āĻāĨ¤ āϏ⧠āϞāĻžāĻāύāĻāĻž āĻĻā§āĻāĻž āĻŽāĻžāϤā§āϰ āĻāϰāϰ āĻĻā§āĻāĻžāĻŦā§āĨ¤
Argument of type 'null' is not assignable to parameter of type 'string'.
āĻāĻāύ āĻāĻ āĻāϰāϰāĻāĻž āĻā§āĻĨāĻž āĻĨā§āĻā§ āĻŦāĻž āĻā§āύ āĻāϏāĻā§ āĻāĻŦāĻ āĻāĻāĻžāϰ āĻĻāϰāĻāĻžāϰ āĻāĻŋ āĻāĻŽāĻžāĻĻā§āϰ? āĻāĻāĻāĻž āĻāĻāĻāĻž āĻāϰ⧠āĻāϤā§āϤāϰ āĻĻā§āĻ āĻāĻĒāύāĻžāĻĻā§āϰ āĻĒā§āϰāĻļā§āύā§āϰ, āĻāϞā§āύāĨ¤
āĻā§āύ āĻāϏāĻā§?
fun āĻĢāĻžāĻāĻļāύ⧠āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻšāĻŋāϏā§āĻŦā§ āĻāĻā§āϏāĻĒā§āĻā§āĻ āĻāϰāĻā§ string āĻāĻžāĻāĻĒāĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻŽāϰāĻž āĻĒāĻžāĻ āĻžāĻā§āĻāĻŋ null , āϝāĻžāϰ āĻāĻžāϰāĻŖā§ āĻāĻžāĻāĻĒ āĻŽāĻŋāϏāĻŽā§āϝāĻžāĻ āĻšāĻā§āĻā§āĨ¤
āĻā§āĻĨāĻž āĻĨā§āĻā§ āĻāϏāĻā§? Â
tsconfig.json āĻ āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āĻ āĻĒāϏāύ `âstrictNullChecksâ: true` āĻĨāĻžāĻāĻžāϰ āĻāĻžāϰāĻŖā§ āĻāĻ āĻāϰāϰāĻāĻž āϧāϰāĻž āĻĒāϰā§āĨ¤ false āĻāϰ⧠āĻĻāĻŋāϞ⧠āĻāϰāϰāĻāĻž āĻĻā§āĻāĻžāĻŦā§ āύāĻžāĨ¤Â Â
āĻā§āύ āĻĻāϰāĻāĻžāϰ? āĻā§āĻ āĻāĻŋ āĻŦā§āĻāĻžāϰ āĻŽāϤ⧠null āϞāĻŋāĻā§ āĻĢāĻžāĻāĻļāύ⧠āĻĒāĻžāĻ āĻžāĻŦā§?
āĻĒāĻžāĻ āĻžāĻŦā§ āύāĻž āϏā§āĻāĻž āϏāϤā§āϝāĨ¤Â āĻāĻŋāύā§āϤ⧠āĻāĻŽāϰāĻž āϝāĻāύ āĻĄāĻžāĻāĻž api-āϤ⧠āĻĒāĻžāĻ āĻžāĻ, āϤāĻāύ āĻā§āύ⧠āĻāĻžāϰāĻŖā§ āĻĄāĻžāĻāĻž null āĻĨāĻžāĻāϞā§? āĻŦāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĨā§āĻā§ āĻā§āύ⧠āĻĄāĻžāĻāĻž āĻĢā§āĻ āĻāϰāĻžāϰ āĻāĻžāĻāĻŽā§ āϰāĻŋāĻā§ā§ā§āϏā§āĻ āĻ āĻā§āύ⧠āĻāĻžāĻŽā§āϞāĻž āĻāĻžāϰāĻŖā§ āĻĄāĻžāĻāĻž null āĻšāϞā§?
āϤāĻžāĻ āϝā§āύ āĻāϰāĻāĻŽ āĻ āύāĻžāĻāĻžāĻā§āĻāĻŋāϤ āĻ āĻŦāϏā§āĻĨāĻžāϰ āϏāĻŽā§āĻā§āύ āĻšāϤ⧠āύāĻž āĻšā§ āϤāĻžāĻ nullable āĻāĻžāĻāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§ā§ āĻĨāĻžāĻā§āĨ¤ āĻŦā§āĻļāĻŋ āĻāĻ āĻŋāύ āĻŽāύ⧠āĻšāĻā§āĻā§? āϤāĻžāĻāϞ⧠āĻāϞā§āύ āĻāĻāĻāĻž āĻāĻĻāĻšāĻžāϰāĻŖ āĻĻā§āĻā§ āĻĢā§āϞāĻŋāĨ¤
āĻāĻā§ āĻĒā§āϰāĻĨāĻŽ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āϏāϞā§āϝā§āĻļāύ āĻĻāĻŋā§ā§ āύā§āĻāĨ¤
āĻāĻĒāύāĻžāϰāĻž āϝāĻĻāĻŋ āĻĢāĻžāĻāĻļāύā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ⧠nullable āĻāĻžāĻāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ āϤāĻžāĻšāϞā§āĻ āϏāĻŽāĻžāϧāĻžāύāĨ¤ āĻāĻŦāĻžāϰ null āĻĒāĻžāĻ āĻžāϞā§āĻ āϏā§āĻāĻž āĻāĻŽāϰāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ⧠āĻāĻāϏā§āĻĒā§āĻ āĻāϰāĻāĻŋ āĻāĻŦāĻ āϏā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāĻāϞ⧠āĻāĻŽāϰāĻž āĻā§āϏ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
function fun(data: string | null){
//...
}
āĻāĻŦāĻžāϰ āĻĻā§āĻŦāĻŋāϤā§ā§ āĻāĻĻāĻžāĻšāĻžāϰāĻŖ:
interface User {
id: number;
name: string;
email: string;
}
function fetchUser(userId: number): Promise {
return new Promise((resolve, reject) => {
setTimeout(() => {
// successful API call
const user: User = {
id: userId,
name: "Rakibul Islam",
email: "RakibulIslam@gmail.com",
};
resolve(user);
}, 2000);
});
}
async function displayUser(userId: number): Promise {
const user = await fetchUser(userId);
if (user !== null) {
//updating state and display user Information
} else {
//loading state
}
}
displayUser(123);
fetchUser āĻĢāĻžāĻāĻļāύ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ user āĻāϰ id āϧāϰ⧠āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĨā§āĻā§ āϤāĻĨā§āϝ āĻāύ⧠āĻĻā§ā§ āĻĢā§āϰāύā§āĻāĻāύā§āĻĄāĻā§āĨ¤ āĻĢāĻžāĻāĻļāύāĻāĻŋ āĻāĻāĻāĻŋ promise āϰāĻŋāĻāĻžāϰā§āύ āĻāϰ⧠āϝāĻž āĻšāĻŦā§ User āĻ āĻĨāĻŦāĻž null. āϝāĻĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĨā§āĻā§ āĻ āĻŋāĻ āĻŽāϤ⧠user-āĻāϰ āϤāĻĨā§āϝ āύāĻŋā§ā§ āĻāϏāϤ⧠āĻĒāĻžāϰ⧠āϤāĻžāĻšāϞ⧠User āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§ āύāĻžāĻšāϞ⧠null. āϏā§āĻāĻžāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻāĻŽāϰāĻž displayUser āĻĢāĻžāĻāĻļāύā§āϰ āĻāĻŋāϤāϰ⧠āĻā§āϏ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰā§āĻāĻŋāĨ¤