class ClassWithFields {
public instanceMember: {a: string, b: number};
public secondInstanceMember: {q: "q"};
public static staticMember: {c: string, d: Date};
}
type getClassFieldType = TClass[TKey];
type getClassFieldFields = keyof TClass[TKey];
/**
* Resolves to:
* const testClassFieldType: {
* q: "q";
* }
* IDE suggests following things for second template arg: instanceMember, secondInstanceMember
*/
const testClassFieldType: getClassFieldType;
/**
* Resolves to:
* const testGetClassFieldFields: "a" | "b"
*/
const testGetClassFieldFields: getClassFieldFields;
< /code>
Я хочу то же самое, в частности, список полей, в статическом поле. То есть мне нужен тип, который данный classwithfields
и «staticmember» , должен решить в список ключей, содержащий «c» | «d» .
Я могу получить тип, представляющий членов класса, как это: < /p> [code] class ClassWithFields { public instanceMember: {a: string, b: number}; public secondInstanceMember: {q: "q"}; public static staticMember: {c: string, d: Date}; } type getClassFieldType = TClass[TKey]; type getClassFieldFields = keyof TClass[TKey];
/** * Resolves to: * const testClassFieldType: { * q: "q"; * } * IDE suggests following things for second template arg: instanceMember, secondInstanceMember */ const testClassFieldType: getClassFieldType;
/** * Resolves to: * const testGetClassFieldFields: "a" | "b" */ const testGetClassFieldFields: getClassFieldFields; < /code> Я хочу то же самое, в частности, список полей, в статическом поле. То есть мне нужен тип, который данный classwithfields [/code] и «staticmember» , должен решить в список ключей, содержащий «c» | «d» .