打字稿中变量之间的区别
Posted
技术标签:
【中文标题】打字稿中变量之间的区别【英文标题】:difference between variables in typescript 【发布时间】:2021-07-29 13:20:49 【问题描述】:这在 Typescript 中是什么意思。"!option" 和 "option" 不一样???
const limit = !options.limit || options.limit === NaN ? 0 : options.limit
【问题讨论】:
如果在if
条件下使用,则毫无意义。如果这个表达式被分配给一个变量,如果options.limit
是假的,它将返回true
。如果它是真的,它将返回option.limit
两者都不同且相反,每个不是运算符(!变量),一个是直接值。
!
否定任何 options.limit
是 ..
你展示的也没有类型,只是JS。
【参考方案1】:
关于您更新的代码:
const limit = !options.limit || options.limit === NaN ? 0 : options.limit
如果options.limit
是falsy
,这将设置limit = 0
。否则,它将使用options.limit
第二个条件不是必需的,因为NaN
是一个假值。它已经包含在!options.limit
条件中。
另外,options.limit === NaN
永远不会是真的,即使options.limit
是NaN
也不会。您需要使用isNaN()
或Number.isNaN()
来检查NaN
您当前的代码相当于:
const limit = options.limit || 0.
【讨论】:
和有什么区别??和 ||然后?我可以把它写成 const limit = options.limit ?? 0对吗? @grooot??
只检查 null 和 undefeined。 ||
检查所有 falsy 值:null、undefined、""
、false、0、NaN
@grooot 为什么你的代码中有=== NaN
这个条件?只想知道options.limit
的可能值。你得到像"50"
这样的字符串格式的数字吗?以上是关于打字稿中变量之间的区别的主要内容,如果未能解决你的问题,请参考以下文章