代码之家  ›  专栏  ›  技术社区  ›  Ole

什么是??=typescript中的运算符被调用了?复制

  •  -1
  • Ole  · 技术社区  · 10 月前

    这个 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;
      }
    }
    
    1 回复  |  直到 10 月前
        1
  •  -1
  •   Miki Maine    10 月前

    这个 ??= JavaScript中的运算符称为 nullish coalescing assignment operator . 它是JavaScript中的一个简写运算符,用于在变量为null或未定义时为该变量赋值。此运算符可用于简明地提供默认值。

    let x;
     x ??= "default";