更新で型チェックのために、固定サイズの配列を宣言する方法:これらのチェックはないランタイムで、コンパイル時のために意図されています。私の例では、失敗したケースはコンパイル時にすべて捕まえられ、もう1つのケースでも同様の動作が予想されます。は失敗しますケース。活字体:コンパイル時
私は、何か私はクラスのすべてのメンバーが同じ長さの配列になりたいテーブルのようなクラスを書いているとします
class MyClass {
tableHead: string[3]; // expect to be a 3 element array of strings
tableCells: number[3]; // expect to be a 3 element array of numbers
}
私はそう遠い見つけた最も近いソリューションを:
class MyClass {
tableHead: [string, string, string];
tableCells: [number, number, number];
}
let bar = new MyClass();
bar.tableHead = ['a', 'b', 'c']; // pass
bar.tableHead = ['a', 'b']; // fail
bar.tableHead = ['a', 'b', 1]; // fail
// BUT these also pass, which are expected to fail at compile time
bar.tableHead = ['a', 'b', 'c', 'd', 'e']; // pass
bar.push('d'); // pass
bar.push('e'); // pass
もっと良いアイディアですか?
アクセス機能でメンバーデータをラップする必要があります。次に、配列に追加する引数の数やデータの長さをチェックできます。 –
あなたは 'getter'と' setter'を意味しますか? – benjaminz
はい。それらを非公開にして、あなたのリストからプッシュまたは削除されているものを制御するメソッドを提供します。それから、あなたはそれを完全にコントロールするでしょう – iberbeu