Angular模板中name.errors?.['required']语法的意义与疑问解析
关于Angular中
name.errors?.['required']语法的疑问解答 name.errors?.['required']是可选链操作符(?.)搭配方括号属性访问的标准写法,和name.errors?.required功能完全一致:先检查name.errors是否为null或undefined,如果是,表达式直接返回undefined;如果不是,就访问它的required属性。这种写法在需要通过变量或者特殊命名的属性名访问时会更常用,比如属性名带空格或者是动态值的情况,不过这里用静态的'required'只是写法不同而已。- 你在Chrome里遇到的语法错误,核心原因是浏览器版本不支持ES2020引入的可选链操作符。可选链需要Chrome 80及以上版本才能正常解析,老版本浏览器会把
?.识别为非法语法,进而抛出方括号相关的错误提示。 - 另外你提到的
name.errors?['required']是错误写法,JavaScript里不存在这种语法,正常情况下任何浏览器都会报错,应该是笔误,正确的可选链结合方括号的写法就是name.errors?.['required']。
内容的提问来源于stack exchange,提问作者adamdport
相关产品推荐
相关产品推荐

