![](/img/trans.png)
[英]How can I check this function for truthy or return an empty array if falsy?
[英]How can I define return value as truthy in Flowtype?
有了這樣的函數的返回值將始終是truthy,沒必要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);
這是一個工作版本 。
但是,類型多態通常不是最好的方法,每次更改模塊文件時都必須重新編譯流。
一個更好的方法可能是創建一個這樣的函數,它返回一個基於真實性邏輯的實體布爾值:
function isTruthy(v: any): boolean {
return !!v;
}
if(isTruthy(v)) {
// do something
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.