function test(): object {
return { a: 0, b: 1 };
}
Object.keys(test()) // Ok
// Or use with type guard:
const tst = test()
if ("a" in tst) {
tst.a // Ok
}
class A {
public returnAnyThing<T>(): T {
return {} as T;
}
}
interface ReturnValue {
val: number;
}
class Caller {
public call(){
const returnValue = new A().returnAnyThing<ReturnValue>();
console.log(returnValue.val);
}
}
2条答案
按热度按时间kwvwclae1#
如果您需要任何东西,并且以后会知道它是什么,请使用
unknown
(以后需要使用as type
):如果你不知道也不关心它是什么,那么就使用
any
(但是这个例子中的类型safety已经过时了):如果你至少知道它是object,你可以输入
object
并使用Object函数或者通过类型保护来访问它:另请参见可分配性文档。
carvr3hs2#
大多数情况下调用者会知道期望什么,你可以做的是在调用函数时推断类型,如下所示: