pull/21833/head
Michael Telatynski 2020-08-05 09:28:02 +01:00
parent cd29edb442
commit 6220f50360
2 changed files with 3 additions and 3 deletions

View File

@ -24,7 +24,7 @@ type ObjectExcluding<O extends {}, P extends (keyof O)[]> = {[k in Exclude<keyof
* @param props The property names to remove.
* @returns The new object without the provided properties.
*/
export function objectExcluding<O extends {}, P extends (keyof O)[]>(a: O, props: P): ObjectExcluding<O, P> {
export function objectExcluding<O extends {}, P extends Array<keyof O>>(a: O, props: P): ObjectExcluding<O, P> {
// We use a Map to avoid hammering the `delete` keyword, which is slow and painful.
const tempMap = new Map<keyof O, any>(Object.entries(a) as [keyof O, any][]);
for (const prop of props) {
@ -45,7 +45,7 @@ export function objectExcluding<O extends {}, P extends (keyof O)[]>(a: O, props
* @param props The property names to keep.
* @returns The new object with only the provided properties.
*/
export function objectWithOnly<O extends {}, P extends (keyof O)[]>(a: O, props: P): {[k in P[number]]: O[k]} {
export function objectWithOnly<O extends {}, P extends Array<keyof O>>(a: O, props: P): {[k in P[number]]: O[k]} {
const existingProps = Object.keys(a) as (keyof O)[];
const diff = arrayDiff(existingProps, props);
if (diff.removed.length === 0) {

View File

@ -141,7 +141,7 @@ export class WidgetApi extends EventEmitter {
private replyToRequest(payload: ToWidgetRequest, reply: any) {
if (!window.parent) return;
const request = objectClone(payload);
const request: ToWidgetRequest & {response?: any} = objectClone(payload);
request.response = reply;
window.parent.postMessage(request, this.origin);