大佬们遇到过这个问题吗?Typescript中对象引用和对象字面量不一样吗

Typescript为什么要区别对待对象字面量和对象引用?interfaceProps{a:number}letobjAB={a:1,b:2}letdemo1:Props={a:1,b:2//Error}letdemo2:Props=objAB//Ok
ABOUTYOU
浏览 246回答 2
2回答

MMTTMM

However,TypeScripttakesthestancethatthere’sprobablyabuginthiscode.Objectliteralsgetspecialtreatmentandundergoexcesspropertycheckingwhenassigningthemtoothervariables,orpassingthemasarguments.Ifanobjectliteralhasanypropertiesthatthe“targettype”doesn’thave,you’llgetanerror:Source应该是ts认为letdemo2:Props=objAB是把objAB当作Props使用,但是letdemo1:Props={a:1,b:2}则是直接实现了一个接口,所以需要严格进行校验吧。所以这样letdemo1:Props={a:1,b:2}asProps;是可以的。

MM们

var person=new Object();person.age age=18;console.log(person.age age);“属性名可以加双引号”这个特性构造出来的对象也可以有,如下:var person=new Object();person["age age"]=18;console.log(person["age age"]);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript