Qiita記事

TypeScriptのクラスをnamespaceで拡張する(クラス定数、拡張メソッド、他)

namespaceはクラスの拡張に使える TypeScriptのnamespace1は本来の名前空間を分けるという事以外に、クラスを拡張してプロパティを生やすことができる。これを使うと本来文法的にできない、あるいは出来るけど通常の処理のコードと定義している事を明示化してメンテナンス性を向上する事が出来る。 具体的には、以下のルールに従って定義する。 class→namespaceの順に同じ名前で定義する namespaceで定義するプロパティは全てexport classをexportす...
2018-05-30
Qiita記事

TypeScriptでのイベント名を管理・指定するもう一つの方法(+ストリングリテラル型にも対応)

TypeScriptでのイベント名をclickで指定するのはもう辞めようという記事を読んで。ActionScriptでも同様な管理を公式が用意してくれていたのでとても便利だったのを思い出しました。ところがTypeScriptはあんまり公式でこういったものを用意してくれません。こういったコードの安全性やメンテナンス製に関わる箇所は公式が運用を広めるべきなんですが…。 namespace + const さて、TypeScriptでは上記の方法以外にもいい方法があります。それはnamespaceと...
2018-05-30
Qiita記事

ES2015で変数名を取得する

1: Function#nameを使う方法 ES2015では、関数式で宣言した関数が無名関数の場合、代入された変数と同じ名前になる。なので無名関数を変数に代入して、Function#nameで取得すれば変数名の文字列が取得できる。 参考:The names of functions in ES6 無名関数を突っ込んでFunction#nameで取得 var v1 = () => {} console.log(v1.name); //v1 宣言時の変数名のみが関数名...
2018-05-30
Qiita記事

タグ付きテンプレート(tagged template strings)でなんちゃって演算子オーバーロード

はじめに ES2015(ES6)で追加されたタグ付きテンプレート(tagged template strings) 参考:JavaScript の テンプレートリテラル を極める! その実体は特殊な関数 ぱっと見は関数に見えない それをつかって”なんちゃって”演算子オーバーロードをやってみようという記事 ※注:実用性は低いです 前提:「演算子オーバーロード」とは JavaScript(ECMAScript)には無い概念。 参考: wikipedia ...
2018-05-30
Qiita記事

SIMD.jsの型定義ファイルを作ってみた

SIMD.js (ES.next stage3)の記事を書きつつ、実際に試してみるために欲しかったのでSIMD.jsのTypeScript用型定義ファイルを作ってみた。 完成品(ver.0.9.1対応) github やったこと DefinitelyTyped で探す → ない。 Issueが立っていたが特に動きなし。 ドキュメントを探す MDN: 内容が古い。変更無いものは参考になる。 SIMD型について: 貴重な日本語資料。参考になる。 SIMD.js ...
2018-05-30
Qiita記事

SIMD.js (ES.next stage3)

はじめに JavaScript stage 0,1,2,3 Advent Calendar 2015 の記事です SIMD.jsを紹介します 記事執筆時で stage3 の仕様です これはなに JavaScriptで複数のデータを一度に扱ってより高速に処理を行うための新機能(データ型とAPI)です。 1回の命令で複数のデータを並列に処理できるSIMDという手法があります。大抵のCPUは拡張命令としてSIMDに対応しています(MMX, SSE, NEON, etc...)。 SI...
2018-05-30
Qiita記事

System.global (ES.next stage1)

はじめに JavaScript stage 0,1,2,3 Advent Calendar 2015 の記事です System.globalを紹介します 記事執筆時で stage1 の仕様です これはなに JS実行環境によってまちまちな名前を付けられている the global object (グローバルオブジェクト)をどんな環境でも一意の名前で取得できるようにするためのものです。 System.global; ※「グローバルオブジェクト(the global object...
2018-05-30
タイトルとURLをコピーしました