TypeScript meistern
Bitte unterstützen Sie dieses Buch: kaufen Sie es oder spenden Sie
(Werbung, bitte nicht blockieren.)

6 In diesem Buch verwendete Notation



Dieses Kapitel erklärt Funktionalitäten, die in den Codebeispielen verwendet werden, aber nicht Teil von TypeScript selbst sind.

6.1 Test-Assertions (dynamisch)

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.

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.

6.2 Typ-Assertions (statisch)

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.