Javascript Typescript您可以声明语言功能吗?“啊!变量`as`无变量`

Javascript Typescript您可以声明语言功能吗?“啊!变量`as`无变量`,javascript,typescript,Javascript,Typescript,是否可以在应用程序的源代码中声明Typescript语言功能 我想实现一个非常小的特性来帮助清晰地浏览代码 经典零测试 if(!userDetails){ //句柄空值 } 新的空测试 if(无用户详细信息){ //句柄空值 } 在我看来只是稍微好一点。。。任何为我指明正确方向的帮助都将是非常好的,谢谢 编辑:当对象未设置时,在句柄中处理null,我知道这也会处理假、“、未定义等 无用户详细信息 不支持。不支持这样的语法添加 更多 从技术上讲,您可以使用语言插件添加它们,但这项工作很辛苦,而

是否可以在应用程序的源代码中声明Typescript语言功能

我想实现一个非常小的特性来帮助清晰地浏览代码

经典零测试

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)
更具可读性,而且它的惯用用法。@jonaswillms
if(!stuff)
更具可读性。但是我认为op是要求一些
关键字值来测试
。我试着做到这一点,这很聪明,我喜欢。但是对于一个简单的空检查,我认为这看起来不像,嗯,
!==空
。这已经是OP问题中的一个问题了……为什么不干脆
const no=v=>!v
@Jonaswillms是的,你可以,但是你需要改变一下<代码>常量编号=(v,…arg)=>arg[1]?true:false
,因为标记函数签名是
(str,arg1,arg2…
,这最终与我已经编写的相同,但是为什么要使用模板文字呢?因为你能?这没什么意义,
no(stuff)
更具可读性,而且它的惯用用法。@jonaswillms
if(!stuff)
更具可读性。但是什么