Generics
generics: readonly number[] は数値配列を読み取れる
読み取り専用の number 配列を受け取れば、呼び出し側の配列を変更せず合計できます。
SourcenumberTotals.ts
Node.js 22
export function sum(numbers: readonly number[]): number {
return numbers.reduce((total, number) => total + number, 0);
}TestnumberTotals.test.ts
Node.js 22
import assert from "node:assert/strict";
import test from "node:test";
import { sum } from "../../src/generics/numberTotals.js";
test("numberのreadonly配列を合計できる", () => {
assert.equal(sum([1, 2]), 3);
assert.equal(sum([1.5, 2.5]), 4);
});01Assertion
このテストで確認できること
- 整数の配列を合計できる
- 小数の配列も同じ関数で合計できる
Java の ? extends Number とは異なり、TypeScript の number は整数と浮動小数点を一つの型で表します。readonly で読み取りの契約を示します。
OBSERVED RESULT
expected: sum([1, 2]) → 3
actual: 3