𝗜𝗻𝘁𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝘁𝗼 𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻 𝗧𝘆𝗽𝗲𝘀

TypeScript inahitaji aina (types) kwa kila kitu. Hii ni pamoja na function zako. Lazima uainishe aina za viingizio (inputs) na matokeo (outputs).

Sintaksi ya Function

Unaainisha aina za viingizio na aina ya matokeo kama hivi:

function add(x: number, y: number): number {
  return x + y;
}

TypeScript pia hutumia type inference. Huenda usihitaji kuandika aina ya matokeo kila wakati. Kichanganuzi (compiler) itaitambua kwa ajili yako.

Ikiwa function yako inarudisha aina tofauti, TypeScript itashughulikia. Kwa mfano, ikiwa function inarudisha namba (number) au maandishi (string), compiler itatambua zote mbili.

Aina Maalum za Matokeo (Return Types)

  • void: Itumie hii wakati function hairudishi kitu chochote.
  • never: Itumie hii wakati function inatupa kosa (error) au inasimamisha programu.

Vigezo (Parameters)

Unaweza kufanya vigezo kuwa vya hiari (optional) kwa kutumia alama ya swali.

function makeProfile(name: string, age: number, url?: string) {
  // code
}

Pia unaweza kutumia thamani za asili (default values). Hii inafanya kigezo kuwa cha hiari bila kuhitaji alama maalum.

function makeProfile(name: string, age: number, url: string = "www.example.com") {
  return name + " visits " + url;
}

Function za Callback

Function ni thamani (values). Unaweza kuzipitisha kama hoja (arguments). Ili kuainisha aina ya callback, tumia sintaksi hii:

function makePage(func: (n: string, a: number, u?: string) => string, param1: string, param2: number) {
  func(param1, param2);
}

Majina ya vigezo katika callback hayajali. Aina (types) pekee ndizo muhimu.

Array za Function

Ikiwa unahitaji orodha ya function, ziainishe kama array ya aina hiyo ya function.

function applyMath(funcs: ((a: number, b: number) => number)[], x: number, y: number) {
  // code
}

Vigezo vya Ziada (Rest Parameters)

Tumia spread operator ili kukubali idadi yoyote ya hoja. Hii huhifadhi viingizio vyote katika array.

function sum(...numbers: number[]) {
  // code
}

sum(1, 2, 3);

Chanzo: https://dev.to/jsha/introduction-to-typescript-function-types-hin