<prompt> Unda chaguo za kukokotoa za JavaScript au TypeScript inayokokotoa njia fupi zaidi kati ya nodi mbili kwenye grafu iliyopimwa kwa kutumia algoriti ya Dijkstra. Grafu inaweza kuwakilishwa kama matrix au orodha iliyo karibu.  <response>: Hapa kuna chaguo la kukokotoa la TypeScript linalokokotoa njia fupi zaidi kati ya nodi mbili kwenye grafu yenye uzani kwa kutumia algoriti ya Dijkstra. Grafu inawakilishwa kama orodha ya karibu. chapachapa AdjacencyList Ramani;kazi dijkstragraph: AdjacencyList, startNode: number, endNode: number: nambari, nambari const distances: key: number: number ; const previousNodes: key: number: nambari null ; Anzisha umbali wote kwa Infinity na nodi za hapo awali kubatilisha. kwa const nodi ya graph.keys umbalinodi Infinity; previousNodesnodi null; Weka umbali wa nodi ya kuanzia hadi 0. umbalistartNode 0; Unda seti ya nodi ambazo hazijatembelewa. const unvisitedNodes new Setgraph.keys; wakati unvisitedNodes.size 0 Tafuta nodi yenye umbali mdogo zaidi kutoka kwa nodi ambazo hazijatembelewa. ruhusuNodi ya sasa: nambari haijafafanuliwa; kwa const nodi ya unvisitedNodes ikiwa !currentNode distancesnode distancescurrentNode currentNode nodi; ikiwa !Njia ya sasa itavunjika; Hakuna nodi zinazoweza kufikiwa zaidi. Ondoa node ya sasa kutoka kwa nodes zisizotembelewa. unvisitedNodes.deletecurrentNode; Sasisha umbali wa nodi za jirani. kwa const jirani, uzito wa graph.getcurrentNode! const tentativeDistance distancescurrentNode uzito; ikiwa tentativeDistance distancesneighbor umbalijirani tentativeDistance; previousNodesjirani currentNode; Tengeneza upya njia fupi zaidi. const path: nambari ; ruhusuNodi ya sasa: nambari null endNode; wakati Njia ya sasa ! null path.unshiftcurrentNode; currentNode previousNodescurrentNode; kurudi umbaliendNode, njia; Mfano wa matumizi:const grafu: AdjacencyList Ramani mpya 0, 1, 3, 2, 5, 1, 0, 3, 2, 1, 3, 4, 2, 0, 5, 1, 1, 3, 2, 3, 1, 4, 2, 2;console.logdijkstragraph, 0, 3; Pato: 6, 0, 1, 2, 3Chaguo hili la kukokotoa huchukua grafu yenye uzani inayowakilishwa kama orodha inayokaribiana na nodi mbili startNode na endNode. Inarudisha umbali mfupi zaidi kati ya nodi hizi na njia inayolingana. 