【问题标题】:Typescript check if string is empty as boolean打字稿检查字符串是否为空作为布尔值
【发布时间】:2019-05-03 01:36:12
【问题描述】:

是否有一种“正确”的方法来检查打字稿中的字符串是否为空,并将答案作为布尔值返回?在 JavaScript 中,我通常只使用空字符串为 false 的事实,但 Typescript 不喜欢在类型之间进行转换。 Typescript 可以使用很多方法,但我只是好奇是否有一种“标准”的做事方式。

例如,

const emptyString: string = '';
const nonEmptyString: string = 'something';

function stringIsEmpty(str: string): boolean {
    return str; // Type 'string' is not assignable to type 'boolean'.
}

要修复它,我们可以执行以下任何操作(以及其他),但在我看来它们都感觉有点“hacky”:

return !!str;

return Boolean(str);

return str.length > 0;

return /^$/.test(str);

【问题讨论】:

  • 如果您打算将其视为布尔值,为什么不直接将 return str === ''stringIsEmpty 联系起来呢?作为适当的运行时检查的结果,这将为您返回一个实际的布尔值。
  • @Jeffrey Westerkamp 这是一个很好的观点,不知道为什么我没想到!

标签: typescript casting type-conversion conventions


【解决方案1】:

您也可以将其转换为布尔值:

return str as unknown as boolean;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-14
    • 2022-07-31
    • 2014-06-19
    相关资源
    最近更新 更多