本章では、コード例で使用される機能について説明します。ただし、TypeScript の一部ではありません。
本書で示されたコード例は、単体テストを使用して自動的にテストされます。操作の予想される結果は、Node.js モジュール assert の次のアサーション関数を使用してチェックされます。
assert.equal() は === を使用して等価性をテストします。assert.deepEqual() は、ネストしたオブジェクト (配列を含む) を深く比較して等価性をテストします。assert.throws() は、コールバックパラメータが例外をスローしない場合にエラーになります。これらのアサーションを使用する例を次に示します。
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);最初の行の import ステートメントは 厳密なアサーションモード (=== を使用し、== を使用しない) を使用します。通常、コード例では省略されます。
静的な型の断言もあります。
%inferred-type は通常の TypeScript のコメントにすぎず、TypeScript が次の行に対して推論する型を記述しています。
// %inferred-type: number
let num = 123;@ts-expect-error は TypeScript の静的エラーを抑制します。本書では、抑制されたエラーは常に記載されています。これはプレーン TypeScript では必要ありませんし、効果もありません。
assert.throws(
// @ts-expect-error: Object is possibly 'null'. (2531)
() => null.myProperty,
TypeError);以前は TypeScript に警告されないようにするために eval() が必要だったことに注意してください。