0

下面的 transormer 方法实际上应该是匿名的,但这在 typescript 中是不允许的:

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]);
4

1 回答 1

1

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

以下是您进行了一些小改动的代码(我删除了一些函数)。

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);
于 2015-04-20T16:46:22.103 回答