这个
range
Lit Element存储库中的函数使用此运算符
??=
…它看起来像一个等号的零合并运算符。。。它叫什么?
以下是整个代码片段供参考。
/**
* Returns an iterable of integers from `start` to `end` (exclusive)
* incrementing by `step`.
*
* If `start` is omitted, the range starts at `0`. `step` defaults to `1`.
*
* @example
*
* ```ts
* render() {
* return html`
* ${map(range(8), () => html`<div class="cell"></div>`)}
* `;
* }
* ```
*/
export function range(end: number): Iterable<number>;
export function range(
start: number,
end: number,
step?: number,
): Iterable<number>;
export function* range(startOrEnd: number, end?: number, step = 1) {
const start = end === undefined ? 0 : startOrEnd;
end ??= startOrEnd;
for (let i = start; step > 0 ? i < end : end < i; i += step) {
yield i;
}
}