Dieses Kapitel erklärt Funktionalitäten, die in den Codebeispielen verwendet werden, aber nicht Teil von TypeScript selbst sind.
Die im Buch gezeigten Codebeispiele werden automatisch über Unit-Tests getestet. Erwartete Ergebnisse von Operationen werden über die folgenden Assertionsfunktionen aus dem Node.js-Modul assert überprüft.
assert.equal() prüft Gleichheit über ===assert.deepEqual() prüft Gleichheit durch tiefes Vergleichen von verschachtelten Objekten (inkl. Arrays).assert.throws() beschwert sich, wenn der Callback-Parameter *keine* Ausnahme wirft.Dies ist ein Beispiel für die Verwendung dieser Assertions
import {strict as assert} from 'assert';
assert.equal(3 + ' apples', '3 apples');
assert.deepEqual(
[...['a', 'b'], ...['c', 'd']],
['a', 'b', 'c', 'd']);
assert.throws(
() => eval('null.myProperty'),
TypeError);Die Import-Anweisung in der ersten Zeile verwendet den strengen Assertionsmodus (der === und nicht == verwendet). Er wird in Codebeispielen normalerweise weggelassen.
Sie werden auch statische Typ-Assertions sehen.
%inferred-type ist in normalem TypeScript nur ein Kommentar und beschreibt den Typ, den TypeScript für die folgende Zeile ableitet.
// %inferred-type: number
let num = 123;@ts-expect-error unterdrückt statische Fehler in TypeScript. In diesem Buch wird der unterdrückte Fehler immer erwähnt. Das ist weder in reinem TypeScript erforderlich, noch bewirkt es dort etwas.
assert.throws(
// @ts-expect-error: Object is possibly 'null'. (2531)
() => null.myProperty,
TypeError);Beachten Sie, dass wir zuvor eval() verwenden mussten, um nicht von TypeScript gewarnt zu werden.