typescript - 打字稿:检查字符串变量值是作为类型 T 给出的类的属性名称的一部分
问题描述
我创建了一个工厂,检查给定的属性是否存在于我的 A 类中。
这有效:
nameOf<A>("name")
因此,鉴于它可以工作的字符串,但在使用变量(动态)时我无法使其工作:
nameOf<A>(this.filters.orderCode) // this.filters.orderCode can contain "id", "name", ... so properties of my A class
错误消息:“字符串”类型的参数不可分配给“id”类型的参数 | “名字” | ...我的工厂名称:
export const nameOf = <T>(name: keyof T) => name;
我的对象 A 类:
export class A {
id: number = 0;
name = '';
...
}
编辑
nameOf 工厂让智能感知有机会显示我的模型属性列表,并验证它是否存在于其中:
我正在使用打字稿 3.2.4
非常感谢您的帮助。
解决方案
推荐阅读
- c++ - 为什么在返回 unordered_map 值时需要声明默认构造函数才能编译?
- android - 在 Kotlin 中生成 HMAC-SHA1 签名
- c# - 指数超出范围。必须为非负数且小于集合的大小... 参数名称:index"
- java - 使 ViewPager 的高度等于 PagerAdapter 中的最高项
- json - 如何使用 VB.net 使用 Json 补丁文件
- loops - 仅从下面的单元格插入行并复制公式
- c++ - “运算符类()”类型的运算符如何工作
- ansible - 如何在使用串行时结束整个播放(Ansible 2.9)
- javascript - 将对象数组复杂转换为另一个数组
- python - 如何重塑 Tensorflow 数据集中的数据?