<prompt> Andika chaguo la kukokotoa la TypeScript ambalo linakubali safu ya vitu vinavyowakilisha wafanyakazi yenye sifa kama vile kitambulisho, jina, idara na mshahara na kukokotoa wastani wa mshahara kwa kila idara. Rejesha matokeo kama kitu ambapo funguo ni majina ya idara na maadili ni mishahara ya wastani.  <response>: Hapa kuna kazi ya TypeScript ambayo huhesabu wastani wa mshahara kwa kila idara: chapainterface Mfanyakazi kitambulisho: nambari; jina: kamba; idara: kamba; mshahara: nambari;kazi hesabuAverageSalaryPerDepartmentwafanyakazi: Mfanyakazi: ufunguo: kamba: nambari const departmentSums: key: string: number ; const departmentHesabu: ufunguo: kamba: nambari ; kwa mfanyikazi wa kawaida wa wafanyikazi kama !idaraSumsmwajiriwa.idara idaraSumsemployee.department 0; idaraHesabuemployee.department 0; idaraSumsemployee.department mfanyakazi.mshahara; idaraHesabumwajiriwa.idara; const departmentAverages: key: string: number ; kwa idara ya const in departmentSums idaraWastaniidara idaraJumlaidara idaraHesabuidara; idara ya kurudiWastani;Chaguo hili la kukokotoa kwanza huanzisha vitu viwili, Sumu za idara na Hesabu za idara, ili kufuatilia jumla ya mishahara na hesabu za wafanyakazi katika kila idara. Kisha inarudia kupitia safu ya pembejeo ya wafanyikazi, kusasisha vitu hivi viwili ipasavyo.Hatimaye, inaunda kitu kipya, departmentAverages, ambacho huhifadhi wastani wa mshahara uliokokotwa kwa kila idara kwa kugawanya jumla ya mishahara kwa hesabu ya wafanyakazi katika idara hiyo. Kitu hiki cha mwisho kinarejeshwa kama matokeo. 