我认为使用类型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
答案 0 :(得分:2)
在TypeScript 1.4中,无法在编译时设置Javascript Object
类型约束。但是你仍然可以在运行时检查类型。
function foo(arg: Object) {
if (typeof arg !== "object") { throw new Error("Error"); }
console.log(arg);
}