HOME/Articles/

個人的実装されてほしいECMA Script Proposal

Article Outline

先日の #tc39_study で知った多くのプロポーサルの中から個人的に実装されると嬉しい提案を書き留めておきます。

do expression

doブロック内で計算した値を返すことができる

const res = do {
    // この中の計算結果を返す
}

decimal

jsの苦手な浮動小数点の演算がいい感じに

let total = 0m
const items = [{price: 1.25m, count: 5}, {price: 5m, count: 1}]
const tax = .0735m

for (let {price, count} of items) {
    total += price * BigDecimal(count)
}

console.log(total * (1m + tax))

temporal

jsの一番嫌いなところ。Dateオブジェクトの欠点を克服する新たなAPI

URL

ブラウザに導入されているURLオブジェクトをECMAScriptにも導入しようってやつ。

change array by copy

Array.prototypeから生えているメソッドのいくつかは破壊的変更を行う。

これをコピーした配列を返すようにしようってやつ。

JavaScript standard library UUID

標準ライブラリとしてRFC4122に基づいたUUIDを提供する提案

const uuid = randomUUID();

pipeline operator

piplineきたーっ

let person = { score: 25 };

let newScore = person.score
  |> double
  |> (_ => add(7, _))
  |> (_ => boundScore(0, 100, _));

slice notation

pythonでおなじみ構文。配列の一部の取得をわかりやすく。

const arr = ['a', 'b', 'c', 'd'];

arr[1:3];
// → ['b', 'c']

string dedent

de + indentでdedent。ヒアドキュメントのインデントをいいかんじにしてくれる。

console.log(```
    query QueryName {
        handleName
    }
​```);