gpt4 book ai didi

javascript - 如何在 Flowtype 中将返回值定义为 truthy?

转载 作者:行者123 更新时间:2023-11-29 15:24:36 27 4
gpt4 key购买 nike

使用这样的函数,返回值将始终为真值,不需要true,也不需要any。有什么方法可以定义此函数的返回值为 truthy 吗?

function cleanTruthy (value: any) {
if (!value) return true
return value
}

最佳答案

这似乎可以通过在单独的模块声明中重载方法来实现。以下工作(我不确定如果没有模块声明是否可行):

/* @flow */

declare function cleanTruthy(V: false | 0 | null | typeof undefined | ""): true;
declare function cleanTruthy<V: any>(v: V): V;


const truthy: 1 = cleanTruthy(1);
const falsy: true = cleanTruthy(false);

Here is a working version .

但是,类型多态通常不是最好的方法,每次更改模块文件时,flow 都必须重新编译。

更好的方法可能是创建一个这样的函数,它根据真实性逻辑返回一个实体 boolean 值:

function isTruthy(v: any): boolean {
return !!v;
}

if(isTruthy(v)) {
// do something
}

关于javascript - 如何在 Flowtype 中将返回值定义为 truthy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40616688/

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