///
interface AmeDictionary {
[mapKey: string]: T;
}
// noinspection JSUnusedGlobalSymbols
type KeysMatchingType = { [K in keyof T]: T[K] extends V ? K : never }[keyof T];
type AmeCssBorderStyle = 'none' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'outset';
interface AmeCssBorderSettings {
style: AmeCssBorderStyle;
color: string;
width: number;
}
type AmeObservablePropertiesOf = {
[P in keyof T]: KnockoutObservable;
}
type AmeRecursiveObservablePropertiesOf = {
[P in keyof T]: T[P] extends object ? AmeRecursiveObservablePropertiesOf : KnockoutObservable;
}