2021-05-19

TypeScriptWebから追いやり、Microsoftを倒す方法

が見つかって俺が騒然。

TypeScriptバージョン 4.3 で、「オーバーライド」を明示する機能が付いた。

class Base {
    foo() { }
}
class Deriv extends Base {
    override foo() { } 
}

これは、TypeScript の大きなアキレス腱となる。

もし ECMA が別の記法採用したらどうなるだろうか?

例えば、こう

class Base {
    foo() { }
}
class Deriv extends Base {
    foo(): Base { }
}

コロンの後ろに基底クラス名を指定し、これでオーバーライドを明示する記法としたらどうだろう?

TS としては「foo() は Base を返すメソッド」に見えるのに……

見た目は同じなのに TSJS意味が異なるとなれば、TS はもう「JSスーパーセット」と名乗れなくなるだろうし

コードを読まされるプログラマにとっても大きな負担となり、TS に身勝手機能を取り付けていった Microsoft

多くのプログラマから愛想をつかされるだろう。

似た事は「private」で起こっていた。

TSプライベートメンバを「private」で表したのに対し、ECMA は「#」記号で表すことにした。

しかしこれは残念ながら TS の都合とバッティングするものではなく、TS はすぐに ECMA追随してしまった。

TSMSWeb から追いやるには、ECMAちょっと工夫をするだけでよい。

ECMA の動きに大いに期待したい。

  • elm使ってるので界隈のいがみ合いはよく知らないけどTSってそんな嫌われてるの

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん