apps-script-utils (Deutsch) 2.1.1 Help

requireNoNilElements

function requireNoNilElements<T>(values: T[], message?: string): NonNullable<T>[]; function requireNoNilElements<T>(values: readonly T[], message?: string): readonly NonNullable<T>[]; function requireNoNilElements<T>(values: Set<T>, message?: string): Set<NonNullable<T>>; function requireNoNilElements<K, V>(values: Map<K, V>, message?: string): Map<K, NonNullable<V>>; function requireNoNilElements<T extends null | undefined>(values: T, message?: string): T; function requireNoNilElements(values: unknown, message?: string): unknown;

Eine Sammlung mit einer Lücke besteht jede andere Prüfung: sie ist nicht null, nicht leer und ein gültiges Array. Die Lücke zeigt sich viel später als leere Zelle oder als Cannot read properties of undefined. Diese Prüfung fängt sie an der Grenze ab und gibt die Sammlung ohne die Nil-Werte im Typ zurück.

Akzeptiert werden ein Array, ein Set oder eine Map — bei einer Map werden die Werte geprüft, nicht die Schlüssel. Eine Sammlung, die selbst null oder undefined ist, geht unverändert durch: dieser Fall gehört zu requireNonNull, und zwei gestapelte Prüfungen sollen ihn nicht doppelt melden. Eine leere Sammlung besteht. Geprüft wird nur die oberste Ebene. Lücken im Array zählen als undefined, [1, , 3] wird also abgelehnt.

Parameter

Parameter

Typ

Beschreibung

values

unknown

Die zu prüfende Sammlung.

message (optional)

string

Die Meldung der Ausnahme. Ohne Angabe wird eine Standardmeldung verwendet.

Rückgabewert

unknown — dieselbe Sammlung, im Elementtyp ohne null und undefined.

Ausnahmen

Ausnahme

Bedingung

IllegalArgumentException

ein Element ist null oder undefined.

IllegalArgumentException

values ist weder Array noch Set noch Map.

Beispiele

Eine Zeile vor dem Schreiben prüfen

/** * Appends a contact row, refusing a row with a gap in it rather than writing a * blank cell that shows up as a bug days later. */ export function appendContact( sheet: GoogleAppsScript.Spreadsheet.Sheet, name: string | null, email: string | null ): void { const row = requireNoNilElements([name, email], "name and email are both required"); sheet.getRange(sheet.getLastRow() + 1, 1, 1, row.length).setValues([row]); }
function appendContact(sheet, name, email) { const row = requireNoNilElements([name, email], "name and email are both required"); sheet.getRange(sheet.getLastRow() + 1, 1, 1, row.length).setValues([row]); }

Den Elementtyp verengen

import { requireNoNilElements } from "apps-script-utils"; const values: Array<string | null> = readColumn(); const names: string[] = requireNoNilElements(values, "the column has empty cells");

Was besteht und was wirft

requireNoNilElements([1, 2, 3]); // => [1, 2, 3] — the same array requireNoNilElements(new Map([["a", 1]])); // => the same Map requireNoNilElements([]); // => [] requireNoNilElements(null); // => null — not this guard's concern requireNoNilElements([1, undefined, 3]); // throws IllegalArgumentException requireNoNilElements([1, , 3]); // throws — a hole is undefined

Siehe auch

Quellcode

src/lang/array/requireNoNilElements.ts

23 September 2026

Diese Dokumentation wurde mit KI (Claude) aus dem Quellcode der Bibliothek erzeugt.