想问下关于typscript动态指定属性
前端吧
全部回复
仅看楼主
level 1
鬼坎 楼主
情况就是我现在有个方法是这样的:
function fn(p: Object, key: string) {
console.log(p.hasOwnProperty(key)); // true
}
对于函数fn传递的p对象必定存在key这个属性,因为要对key属性进行处理,要如此才能做到限制传递的key必定存在于p里,否则是错误的?
2020年06月02日 15点06分 1
level 10
2020年06月02日 15点06分 3
喔原来是用keyof,我早就忘了还有这关键字,谢谢了。那这样怎么才能指定属性key的值类型必须为string呢
2020年06月02日 17点06分
@鬼坎 对象的key值不就只能是symbol和string吗,都keyof肯定只能是两个之一了
2020年06月03日 00点06分
@蔚奥莱的小蛋糕 我想限制的是是p[key]的值
2020年06月03日 00点06分
@鬼坎 泛型传递参数就行了
2020年06月03日 00点06分
level 10
2020年06月03日 00点06分 4
我想过这样写,但对象p不仅只有一个[key]属性,只不过我想对其指定的一个[key]属性进行处理。 并且由于我用的是es7那种装饰器包裹在另外一个方法上,所以我也不能只传递一个属性,而是要完整的对象作为参数。
2020年06月03日 01点06分
这么写变成对象p所有属性都必须是string
2020年06月03日 01点06分
1