TypeScript の配列で empty()・front()・back() を使う
TypeScript(JavaScript)の配列には、
empty()
:配列が空であるかどうかを返すfront()
:配列の先頭の要素を返すback()
:配列の末尾の要素を返す
といったメソッドがありません(これらは C++の配列(vector)に存在するメソッドです)。
それぞれ
hoge.empty()
:hoge.length === 0
hoge.front()
:hoge[0]
hoge.back()
:hoge[hoge.length - 1]
と書けば全く問題ないのですが、変数名が長いと少し読みづらい気がします。
const foo = hogehoge.fugafuga.back();
const bar = hogehoge.fugafuga[hogehoge.fugafuga.length - 1];
TypeScript でこれらのメソッドが使いたい場合は、以下のようなコードを書けば良いです。
declare global {
interface Array<T> {
empty(): boolean;
front(): T;
back(): T;
}
}
/** 配列が空であるかどうかを返す */
(Array.prototype as any).empty = function () {
return this.length === 0;
};
/** 配列の最初の要素を返す */
(Array.prototype as any).front = function () {
return this[0];
};
/** 配列の最後の要素を返す */
(Array.prototype as any).back = function () {
return this[this.length - 1];
};
あまりお行儀の良いコードではない気がしますが、(自分以外触らないコードでは)便利なので使っています。
TypeScript でこれらのメソッドが欲しくなったときは使ってみてください。