可以将自定义 class 命名为 "Map",并且仍然引用 Haxe "Map" class 吗?

Possible to make custom class named "Map", and still reference the Haxe "Map" class?

是否可以制作一个名为class的地图:

// src/test/Map.hx
package test;
class Map {
    public function new ( a : Int, b : Int : c : Int ) {
        trace( a + b + c );
    }
}

然后以某种方式访问​​ Map class 和 Foo.hx?

中的 original Haxe Map construct
// src/test/Foo.hx
package test;
class Foo {
    var map1 : test.Map         = new test.Map( 1, 2, 3 );
    var map2 : Map<Int, String> = [ 0 => "Hello" ];
}

这不起作用,因为 map2 类型自动解析为 test.Map(不是 Haxe 类型),因为 Foo.hx 是 test 包的一部分其中包含新的 Map class.

如果 Haxe Map 构造是包的一部分,这将很容易(可以只说 package_name.Map)。但是,它没有包装。那么有没有办法同时访问两者?

有了 Haxe 4,您将能够使用 haxe.ds.Map

同时,您应该可以使用 std.Map.

访问 haxe 的 Map