𝗜𝗻𝘁𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝘁𝗼 𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻 𝗧𝘆𝗽𝗲𝘀
TypeScript ਵਿੱਚ ਹਰ ਚੀਜ਼ ਲਈ types ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਸ ਵਿੱਚ ਤੁਹਾਡੇ functions ਵੀ ਸ਼ਾਮਲ ਹਨ। ਤੁਹਾਨੂੰ inputs ਅਤੇ outputs ਲਈ types ਪਰਿਭਾਸ਼ਿਤ ਕਰਨੇ ਪੈਣਗੇ।
Function Syntax
ਤੁਸੀਂ ਇਸ ਤਰ੍ਹਾਂ input types ਅਤੇ ਇੱਕ output type ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹੋ:
function add(x: number, y: number): number {
return x + y;
}
TypeScript type inference ਦੀ ਵਰਤੋਂ ਵੀ ਕਰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਹਮੇਸ਼ਾ output type ਲਿਖਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ। ਕੰਪਾਈਲਰ (compiler) ਇਸਨੂੰ ਤੁਹਾਡੇ ਲਈ ਲੱਭ ਲੈਂਦਾ ਹੈ।
ਜੇਕਰ ਤੁਹਾਡਾ function ਵੱਖ-ਵੱਖ types ਰਿਟਰਨ ਕਰਦਾ ਹੈ, ਤਾਂ TypeScript ਇਸਨੂੰ ਸੰਭਾਲ ਲੈਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਕੋਈ function number ਜਾਂ string ਰਿਟਰਨ ਕਰਦਾ ਹੈ, ਤਾਂ compiler ਦੋਵਾਂ ਨੂੰ ਪਛਾਣ ਲੈਂਦਾ ਹੈ।
Special Return Types
- void: ਇਸਦੀ ਵਰਤੋਂ ਉਦੋਂ ਕਰੋ ਜਦੋਂ ਕੋਈ function ਕੁਝ ਵੀ ਰਿਟਰਨ ਨਹੀਂ ਕਰਦਾ।
- never: ਇਸਦੀ ਵਰਤੋਂ ਉਦੋਂ ਕਰੋ ਜਦੋਂ ਕੋਈ function error ਸੁੱਟਦਾ ਹੈ ਜਾਂ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ।
Parameters
ਤੁਸੀਂ ਇੱਕ ਪ੍ਰਸ਼ਨ ਚਿੰਨ੍ਹ (?) ਦੀ ਵਰਤੋਂ ਕਰਕੇ parameters ਨੂੰ optional ਬਣਾ ਸਕਦੇ ਹੋ।
function makeProfile(name: string, age: number, url?: string) {
// code
}
ਤੁਸੀਂ default values ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਵਿਸ਼ੇਸ਼ ਚਿੰਨ੍ਹਾਂ ਤੋਂ ਬਿਨਾਂ ਇੱਕ parameter ਨੂੰ optional ਬਣਾ ਦਿੰਦਾ ਹੈ।
function makeProfile(name: string, age: number, url: string = "www.example.com") {
return name + " visits " + url;
}
Callback Functions
Functions values ਹੁੰਦੇ ਹਨ। ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ arguments ਵਜੋਂ ਪਾਸ ਕਰ ਸਕਦੇ ਹੋ। Callback type ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ, ਇਸ syntax ਦੀ ਵਰਤੋਂ ਕਰੋ:
function makePage(func: (n: string, a: number, u?: string) => string, param1: string, param2: number) {
func(param1, param2);
}
Callback ਵਿੱਚ parameters ਦੇ ਨਾਮ ਮਾਇਨੇ ਨਹੀਂ ਰੱਖਦੇ। ਸਿਰਫ਼ types ਮਾਇਨੇ ਰੱਖਦੇ ਹਨ।
Arrays of Functions
ਜੇਕਰ ਤੁਹਾਨੂੰ functions ਦੀ ਇੱਕ ਸੂਚੀ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਉਸ function type ਦੇ array ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ।
function applyMath(funcs: ((a: number, b: number) => number)[], x: number, y: number) {
// code
}
Rest Parameters
ਕਿਸੇ ਵੀ ਗਿਣਤੀ ਵਿੱਚ arguments ਨੂੰ ਸਵੀਕਾਰ ਕਰਨ ਲਈ spread operator ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਸਾਰੇ inputs ਨੂੰ ਇੱਕ array ਵਿੱਚ ਸਟੋਰ ਕਰਦਾ ਹੈ।
function sum(...numbers: number[]) {
// code
}
sum(1, 2, 3);
Source: https://dev.to/jsha/introduction-to-typescript-function-types-hin