打字稿:有没有办法把东西限制在一个javascript'对象'类型?

时间:2015-02-10 18:53:33

标签: typescript

我认为使用类型Object会做到这一点,但这仍然允许任何事情。我想要这样的东西:

function foo(arg: /* what goes here? */) { }

foo({})                        // should compile
foo({ something: 'anything'})  // should compile
foo(new Object())              // should compile

foo(7)                         // should not compile
foo('hello')                   // should not compile

1 个答案:

答案 0 :(得分:2)

在TypeScript 1.4中,无法在编译时设置Javascript Object类型约束。但是你仍然可以在运行时检查类型。

function foo(arg: Object) {
    if (typeof arg !== "object") { throw new Error("Error"); }

    console.log(arg);
}