vue-facing-decorator
Version:
Vue typescript class and decorator based component.
21 lines • 839 B
TypeScript
export declare const IdentitySymbol: unique symbol;
export type IdentityType = {
props: Record<string, any>;
events: Record<string, any>;
};
type AssertIs<O, T extends O> = T;
export interface Identity<T extends IdentityType = IdentityType> {
[IdentitySymbol]: T;
}
export interface IdentityAny<T extends IdentityType = IdentityType> extends Identity<T> {
[index: PropertyKey]: any;
}
type MergeRecord<N extends Record<string, any>, O extends Record<string, any>> = {
[I in (keyof N) | (keyof O)]: I extends keyof N ? N[I] : I extends keyof O ? O[I] : never;
};
export type MergeIdentityType<N extends IdentityType, O extends IdentityType> = AssertIs<IdentityType, {
props: MergeRecord<N['props'], O['props']>;
events: MergeRecord<N['events'], O['events']>;
}>;
export {};
//# sourceMappingURL=identity.d.ts.map