Typescript:检查字符串变量值是否是作为T类型给定的类的属性名称的一部分
我创建了一个工厂,检查给定的属性是否存在于我的类a中 这项工作: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的属性不匹配时,这两个命题都不会引发预期的错误
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 = '';
...
}