gpt4 book ai didi

javascript - 有没有一种方法可以知道函数的返回值类型而不执行它?

转载 作者:行者123 更新时间:2023-12-02 06:27:58 27 4
gpt4 key购买 nike

我在对象内部有一组函数。一个返回一个对象,另一个返回字符串:

{
id: 'test-1',
children: [
function childOne() {
return {
id: 'child-1'
}
},
function childTwo() {
return 'text.'
}
]
}

有没有一种方法可以在不执行函数的情况下检测返回值的类型?

最佳答案

不是用JavaScript,不是,因为:

  • 声明返回类型不是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是:
    function addReturns(type, fn) {
    fn.returns = type;
    return fn;
    }

    关于javascript - 有没有一种方法可以知道函数的返回值类型而不执行它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50833309/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com