diff --git a/types/mithril/index.d.ts b/types/mithril/index.d.ts index 77ff232f0bd2ff..f9a08ee74de508 100644 --- a/types/mithril/index.d.ts +++ b/types/mithril/index.d.ts @@ -9,8 +9,8 @@ declare function mount(element: Element, component: null): void; // tslint:disab /** Returns a shallow-cloned object with lifecycle attributes and any given custom attributes omitted. */ declare function censor< O extends Record, - E extends readonly string[], ->(object: O, extra: E): Omit, E[number]>; + E extends readonly string[] = readonly [], +>(object: O, extra?: E): Omit, E[number]>; /** Makes an XHR request and returns a promise. */ declare function request(options: Mithril.RequestOptions & { url: string }): Promise; diff --git a/types/mithril/test/test-misc.ts b/types/mithril/test/test-misc.ts index 63fb0bae124862..fb32395386bb1d 100644 --- a/types/mithril/test/test-misc.ts +++ b/types/mithril/test/test-misc.ts @@ -9,12 +9,22 @@ const params = parseQueryString("?id=123"); const qstr = buildQueryString({ id: 123 }); -const censored = censor({ one: "two", enabled: false, oninit: () => {} }, ["enabled"] as const); -// @ts-expect-error -censored.enabled; -// @ts-expect-error -censored.oninit; -censored.one; +{ + const censored = censor({ one: "two", enabled: false, oninit: () => {} }, ["enabled"] as const); + // @ts-expect-error + censored.enabled; + // @ts-expect-error + censored.oninit; + censored.one; +} + +{ + const censored = censor({ one: "two", enabled: false, oninit: () => {} }); + censored.enabled; + // @ts-expect-error + censored.oninit; + censored.one; +} render(document.body, "Hello"); render(document.body, h("h1", "Test"));