我在一个对象中有一个函数数组,一个返回对象,另一个返回字符串:
{ id: 'test-1', children: [ function childOne() { return { id: 'child-1' } }, function childTwo() { return 'text.' } ] }
有没有一种方法可以在不执行函数的情况下检测返回值的类型?
b4lqfgs41#
在JavaScript中没有,因为:
TypeScript在JavaScript中添加了一层静态类型检查,如果你经常需要的话。但即使这样,这些信息在运行时也会被删除,所以如果你在运行时需要这些信息,TypeScript也帮不上忙。相反,您需要将其作为信息包含在数组中,例如:
{ id: 'test-1', children: [ { returns: "object", fn: function childOne() { return { id: 'child-1' }; } }, { returns: "string", fn: function childTwo() { return 'text.'; } } ] }
或者,由于函数是对象:
{ id: 'test-1', children: [ addReturns("object", function childOne() { return { id: 'child-1' } }), addReturns("string", function childTwo() { return 'text.' }) ] }
...其中addReturns为:
addReturns
function addReturns(type, fn) { fn.returns = type; return fn; }
1条答案
按热度按时间b4lqfgs41#
在JavaScript中没有,因为:
TypeScript在JavaScript中添加了一层静态类型检查,如果你经常需要的话。但即使这样,这些信息在运行时也会被删除,所以如果你在运行时需要这些信息,TypeScript也帮不上忙。
相反,您需要将其作为信息包含在数组中,例如:
或者,由于函数是对象:
...其中
addReturns
为: