Javascript Typescript您可以声明语言功能吗?“啊!变量`as`无变量`
是否可以在应用程序的源代码中声明Typescript语言功能 我想实现一个非常小的特性来帮助清晰地浏览代码 经典零测试Javascript Typescript您可以声明语言功能吗?“啊!变量`as`无变量`,javascript,typescript,Javascript,Typescript,是否可以在应用程序的源代码中声明Typescript语言功能 我想实现一个非常小的特性来帮助清晰地浏览代码 经典零测试 if(!userDetails){ //句柄空值 } 新的空测试 if(无用户详细信息){ //句柄空值 } 在我看来只是稍微好一点。。。任何为我指明正确方向的帮助都将是非常好的,谢谢 编辑:当对象未设置时,在句柄中处理null,我知道这也会处理假、“、未定义等 无用户详细信息 不支持。不支持这样的语法添加 更多 从技术上讲,您可以使用语言插件添加它们,但这项工作很辛苦,而
if(!userDetails){
//句柄空值
}
新的空测试
if(无用户详细信息){
//句柄空值
}
在我看来只是稍微好一点。。。任何为我指明正确方向的帮助都将是非常好的,谢谢
编辑:当对象未设置时,在句柄中处理null,我知道这也会处理假
、“
、未定义
等
无用户详细信息
不支持。不支持这样的语法添加
更多
从技术上讲,您可以使用语言插件添加它们,但这项工作很辛苦,而且有点晦涩难懂
无用户详细信息
不支持。不支持这样的语法添加
更多
从技术上讲,您可以使用语言插件添加它们,但这项工作很辛苦,而且有点晦涩。不。如果您确实想这样做,恐怕您需要fork TypeScript并创建您的语言
请记住,TypeScript的语义非常好,以确保它不会与JavaScript语法冲突。对于你提出的这个特殊例子,我想不出有碰撞,但仍然可能有 不。如果你真的想这么做,恐怕你需要fork-TypeScript并创建自己的语言
请记住,TypeScript的语义非常好,以确保它不会与JavaScript语法冲突。对于你提出的这个特殊例子,我想不出有碰撞,但仍然可能有 您可以使用template literal函数执行类似的操作
功能编号(值){
返回参数[1]?true:false
}
让userDetails=null
if(否`${userDetails}`){
console.log('notnull')
}否则{
console.log('null')
}
如果(否`${4}`){
console.log('notnull')
}
您可以使用模板文本函数执行类似操作
功能编号(值){
返回参数[1]?true:false
}
让userDetails=null
if(否`${userDetails}`){
console.log('notnull')
}否则{
console.log('null')
}
如果(否`${4}`){
console.log('notnull')
}
在我看来
-好吧,这就是关于意见的事情,每个人都有一个意见-如果你真的只想处理null,为什么不如果(userDetails!==null)
,因为(!userDetails)
如果userDetails
是假,,,0
,NaN,或者undefined
不只是当它为null
时,而且如果下一版本的TS或任何ES功能引入了这种语法或使这种语法模棱两可的语法,您已经为自己构建了一个很好的脚踏枪。此外,您还可以通过创建一个执行此检查的函数(在您需要的任何版本中)来实现类似的视觉效果。你可以开始使用typescript…为批评喝彩,是的,在我看来这更为坚如磐石。
-好吧,这就是关于观点的事情,每个人都有一个-如果你真的只想处理null,为什么不如果(userDetails!==null)
,因为(!userDetails)如果userDetails
为false
,,0
,NaN
或undefined
,而不仅仅是在null
时,如果下一版本的TS或任何ES功能引入了这种语法或使其模棱两可的语法,则为您自己构建了一把漂亮的脚踏枪,你可以通过创建一个执行此检查的函数(在你需要的任何版本中)来实现类似的视觉效果。你可以使用typescript…为批评喝彩,是的,这更像岩石。它会使no
成为一个关键字,至少可以破坏现有代码。是的,我理解。当我说“确保您不会与JavaScript冲突”时,我的意思是,根据您将要进行的更改,您可以将原本有效的JavaScript转换为任何其他JavaScript将no
a关键字,这至少可以破坏现有代码。是的,我理解。当我说“确保你不会与JavaScript冲突”时,我的意思是,根据你所做的更改,你可以将原本有效的JavaScript转换成其他任何东西。这很聪明,我喜欢。但是对于一个简单的空检查,我认为这看起来不像,嗯,!==空
。这已经是OP问题中的一个问题了……为什么不干脆const no=v=>!v
@Jonaswillms是的,你可以,但是你需要改变一下<代码>常量编号=(v,…arg)=>arg[1]?true:false
,因为标记函数签名是(str,arg1,arg2…
,这最终与我已经编写的相同,但是为什么要使用模板文字呢?因为你能?这没什么意义,no(stuff)
更具可读性,而且它的惯用用法。@jonaswillmsif(!stuff)
更具可读性。但是我认为op是要求一些关键字值来测试。我试着做到这一点,这很聪明,我喜欢。但是对于一个简单的空检查,我认为这看起来不像,嗯,!==空
。这已经是OP问题中的一个问题了……为什么不干脆const no=v=>!v
@Jonaswillms是的,你可以,但是你需要改变一下<代码>常量编号=(v,…arg)=>arg[1]?true:false
,因为标记函数签名是(str,arg1,arg2…
,这最终与我已经编写的相同,但是为什么要使用模板文字呢?因为你能?这没什么意义,no(stuff)
更具可读性,而且它的惯用用法。@jonaswillmsif(!stuff)
更具可读性。但是什么