Да ещё и с риском нарваться на нарушение трудового законодательства.
string | number
.type StrType = string | null | undefined
type ObjStr<T> = {
[Key in keyof T as [T[Key], T[Key] & StrType] extends [StrType, T[Key]] ? Key : never]: StrType;
};
function getStrValue<T>(obj: T & ObjStr<T>, key: keyof ObjStr<T>): StrType {
return obj[key];
}
только чуть подправил ObjStr, он стал почти как этот мой OmitNonStrFields, чтобы не терялись поля, у которых тип - подмножество строк:
type ObjStr<T> = {
[Key in keyof T as [T[Key], string] extends [string, T[Key]] ? Key : never]: string
}
function getStrValue<T>(obj: T & ObjStr<T>, key: keyof ObjStr<T>): string {
return obj[key];
}
И да, я не помню, играет ли роль фулл скрин или нет, но на всякий случай попробуй в окне без рамок.