TypeScript の攻略
この本をサポートしてください: 購入する または 寄付する
(広告です。ブロックしないでください)

6 本書で使用される表記法



本章では、コード例で使用される機能について説明します。ただし、TypeScript の一部ではありません。

6.1 テストの断言 (動的)

本書で示されたコード例は、単体テストを使用して自動的にテストされます。操作の予想される結果は、Node.js モジュール assert の次のアサーション関数を使用してチェックされます。

これらのアサーションを使用する例を次に示します。

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 ステートメントは 厳密なアサーションモード (=== を使用し、== を使用しない) を使用します。通常、コード例では省略されます。

6.2 型の断言 (静的)

静的な型の断言もあります。

%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() が必要だったことに注意してください。