Typescript 如何键入可以有任何键的对象并避免属性';xxx和x27;不存在于类型';{}';警告
我有一个函数,可以接收一个对象,它的条目可以是任何东西。对象的类型如下:Typescript 如何键入可以有任何键的对象并避免属性';xxx和x27;不存在于类型';{}';警告,typescript,Typescript,我有一个函数,可以接收一个对象,它的条目可以是任何东西。对象的类型如下:myObj:{} 我对myObj.count执行条件检查。Typescript显示以下错误: 类型“{}”上不存在属性“count” 如何避免这种情况(我不想写@ts ignore),我需要一个干净的打字 myObj?:{count?:number,[key:string]:any}可以接受吗?还是有更好的方法?如果希望myObj始终拥有count属性,那么不要使用?: myObj?:{count:number,[key:s
myObj:{}
我对myObj.count
执行条件检查。Typescript显示以下错误:
类型“{}”上不存在属性“count”
如何避免这种情况(我不想写@ts ignore),我需要一个干净的打字
myObj?:{count?:number,[key:string]:any}
可以接受吗?还是有更好的方法?如果希望myObj
始终拥有count属性,那么不要使用?
:
myObj?:{count:number,[key:string]:any}
如果你想让myObj有时拥有
count
,那么按照你说的做:
myObj?:{count?:number,[key:string]:any}
但是,第二种方法不能帮助您避免检查属性是否存在
但是请注意,这只会帮助检查静态存在的属性,如果您正在强制转换为此类型,则该属性可能仍然为null(即使在第一个示例中)如果您希望
myObj
始终具有count属性,则不使用?
:
myObj?:{count:number,[key:string]:any}
如果你想让myObj有时拥有
count
,那么按照你说的做:
myObj?:{count?:number,[key:string]:any}
但是,第二种方法不能帮助您避免检查属性是否存在
但是请注意,这只会帮助检查静态存在的属性,如果您强制转换为这种类型,则该属性可能仍然为null(即使在第一个示例中)是的,count属性有时可能会出现。因此,选项2是正确的。是的,count属性有时可能会出现。因此,选项2是正确的。