尝试为 proj4 创建打字稿定义,如何声明匿名静态?

Trying to create a typescript definition for proj4, how to declare anonymous static?

下面的 transormer 方法实际上应该是匿名的,但打字稿中不允许这样做:

class Proj {
    static (a, b): {
        forward: (p: Point) => Point;
        inverse: (p: Point) => Point;
    };
    static defs(name: string): any;
    static defs(name: string, def: string): void;
    static transform(from: any, to: any, pt: Point);
    static parse(sr: string): any;
}

那么如何定义才能使以下内容成为可能?

import proj = require("proj");
proj("EPSG:3857", "EPSG:4326").forward([0,0]);

您正在寻找类似下面的内容吗? 当你声明一个函数和一个具有相同名称的模块时(函数需要在模块之前声明,否则你会得到一个错误)它们合并。

下面是你的代码,做了一些小改动(我删除了一些功能)。

interface Item {
    forward: (p: Point) => Point;
    inverse: (p: Point) => Point;
}
function Proj(a, b): Item {
    return null;
}
module Proj {
    export function defs(name: string): any {
        return null
    }
}

Proj.defs("");
Proj(1 ,3).forward(null);