32 lines
924 B
TypeScript
32 lines
924 B
TypeScript
/**
|
|
* @license
|
|
* Copyright 2021 Google LLC
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
/**
|
|
* Chooses and evaluates a template function from a list based on matching
|
|
* the given `value` to a case.
|
|
*
|
|
* Cases are structured as `[caseValue, func]`. `value` is matched to
|
|
* `caseValue` by strict equality. The first match is selected. Case values
|
|
* can be of any type including primitives, objects, and symbols.
|
|
*
|
|
* This is similar to a switch statement, but as an expression and without
|
|
* fallthrough.
|
|
*
|
|
* @example
|
|
*
|
|
* ```ts
|
|
* render() {
|
|
* return html`
|
|
* ${choose(this.section, [
|
|
* ['home', () => html`<h1>Home</h1>`],
|
|
* ['about', () => html`<h1>About</h1>`]
|
|
* ],
|
|
* () => html`<h1>Error</h1>`)}
|
|
* `;
|
|
* }
|
|
* ```
|
|
*/
|
|
export declare const choose: <T, V>(value: T, cases: [T, () => V][], defaultCase?: (() => V) | undefined) => V | undefined;
|
|
//# sourceMappingURL=choose.d.ts.map
|