Merge pull request #10 from zakhenry/feat/generic-data-types

feat(Typescript): Add generic data types for strongly typing nodes/links
This commit is contained in:
Andrei Kashcha 2019-05-12 08:53:11 -07:00 committed by GitHub
commit 7ede140bbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

19
index.d.ts vendored
View File

@ -3,25 +3,26 @@
// Definitions by: Nathan Westlake <https://github.com/CorayThan>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import { Graph, Link, Node, NodeId } from "ngraph.graph"
declare module "ngraph.path" {
import { Graph, Link, Node, NodeId } from "ngraph.graph"
interface PathFinderOptions {
interface PathFinderOptions<NodeData, LinkData> {
oriented?: boolean
quitFast?: boolean
heuristic?: (from: NodeId, to: NodeId) => number
distance?: (from: NodeId, to: NodeId, link: Link) => number
heuristic?: (from: Node<NodeData>, to: Node<NodeData>) => number
distance?: (from: Node<NodeData>, to: Node<NodeData>, link: Link<NodeData>) => number
}
interface PathFinder {
find: (from: NodeId, to: NodeId) => Node[]
interface PathFinder<NodeData> {
find: (from: NodeId, to: NodeId) => Node<NodeData>[]
}
export function aStar(graph: Graph, options?: PathFinderOptions): PathFinder
export function aStar<NodeData, LinkData>(graph: Graph<NodeData, LinkData>, options?: PathFinderOptions<NodeData, LinkData>): PathFinder<NodeData>
export function aGreedy(graph: Graph, options?: PathFinderOptions): PathFinder
export function aGreedy<NodeData, LinkData>(graph: Graph<NodeData, LinkData>, options?: PathFinderOptions<NodeData, LinkData>): PathFinder<NodeData>
export function nba(graph: Graph, options?: PathFinderOptions): PathFinder
export function nba<NodeData, LinkData>(graph: Graph<NodeData, LinkData>, options?: PathFinderOptions<NodeData, LinkData>): PathFinder<NodeData>
}