/** * Moddle base element. */ export default class Base { /** * * Get property value (typed) * * * @param name * * @return */ get(name: K): this[K]; /** * * Get property value * * * @param name * * @return */ get(name: string): T; /** * Get property value * * * @param name * * @return */ get(name: string): unknown; /** * * Set property value * * * @param name * @param value */ set(name: K, value: V): any; /** * * Set property value * * * @param name * @param value */ set(name: S extends keyof this ? never : S, value: any): any; }