Typescript:检查字符串变量值是否是作为T类型给定的类的属性名称的一部分

Typescript:检查字符串变量值是否是作为T类型给定的类的属性名称的一部分,typescript,factory,typescript-generics,Typescript,Factory,Typescript Generics,我创建了一个工厂,检查给定的属性是否存在于我的类a中 这项工作: nameOf<A>("name") 编辑 工厂名称使intellisense有机会显示我的模型属性列表,并验证其中是否存在: 我使用的是typescript 3.2.4 非常感谢您的帮助。您是否可以省略keyof T并使用any而不是不清楚您的name of的工作原理,但是,如果要允许传递任何键,则类型可能应该是PropertyKey而不是keyof T。当我的值与类a的属性不匹配时,这两个命题都不会引发预期的错误

我创建了一个工厂,检查给定的属性是否存在于我的类a中

这项工作:

nameOf<A>("name")
编辑

工厂名称使intellisense有机会显示我的模型属性列表,并验证其中是否存在:

我使用的是typescript 3.2.4


非常感谢您的帮助。

您是否可以省略
keyof T
并使用
any
而不是不清楚您的
name of
的工作原理,但是,如果要允许传递任何键,则类型可能应该是
PropertyKey
而不是
keyof T
。当我的值与类a的属性不匹配时,这两个命题都不会引发预期的错误。预期:如果“this.filters.orderCode”=“name”,则当this.filters.orderCode=“nam”时它应该工作它不应该在A类中丢失。我已经编辑了的名称以使其尽可能小。您是否可以省略
keyof T
并使用
any
,而不是使用
any
不清楚您的
nameOf
是如何工作的,但是,如果要允许传递任何键,则类型可能应该是
PropertyKey
而不是
keyof T
。当我的值与类a的属性不匹配时,这两个命题都不会引发预期的错误。预期:如果“this.filters.orderCode”=“name”,则当this.filters.orderCode=“nam”时它应该工作它不应该在类A中丢失。我已经编辑了的名称以使其尽可能减少。
nameOf<A>(this.filters.orderCode) // this.filters.orderCode can contain "id", "name", ... so properties of my A class
export const nameOf = <T>(name: keyof T) => name;
export class A {
  id: number = 0;
  name = '';
  ...
}