【发布时间】: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