如何在 Haxe 中显式声明变量类型为对象?

How do I explicitly declare the type of the variable as object in Haxe?

如果我有一个名为 str 的变量,它是一个字符串,我可以执行以下操作

var str:String = "value";

但是,我不知道像这样的通用对象需要使用哪种类型

var myObj:???? = {
  key1: value1,
  key2: value2
}

我知道我不需要声明它,但我仍然想知道代替 ????

的正确文本是什么

Type.typeof() 说是 TObject 但我不能用那个。

这取决于密钥类型,但您可能需要这样的东西:

    var myObj:{key1:String, key2:String} = {
      key1: "foo",
      key2: "bar"
    };

如果您打算重用此结构,您应该考虑定义 Class 或 Typedef。否则,您不必提供类型。您可以只执行以下操作并让编译器分配自己的类型:

var myObj = {
      key1: "foo",
      key2: "bar"
    };

如果使用 typedef,您会喜欢:

typedef FooBar = {
  var foo : String;
  var bar : String;
}
var myObj:FooBar = {
  foo: "foo",
  bar: "bar"
};