TypeScript Deep Dive 日本語版
検索…
TypeScript Deep Dive 日本語版
TypeScript Deep Dive 日本語版
TypeScript入門 & 環境構築
JavaScript
モダンなJavaScriptの機能
プロジェクトの環境設定
Node.js & TypeScriptのプロジェクト作成
React & TypeScriptのプロジェクト作成
TypeScriptの型システム
JSX
オプション
TypeScriptのエラー
NPM
テスト
ツール
その他のヒント
String Based Enums
Nominal Typing
Stateful Functions
Bind is Bad
Currying
Type Instantiation
Lazy Object Literal Initialization
Classes are Useful
Avoid Export Default
Limit Property Setters
outFile caution
JQuery tips
static constructors
singleton pattern
Function parameters
Build Toggles
Barrel
Create Arrays
Typesafe Event Emitter
スタイルガイド(コーディング規約)
TypeScriptコンパイラの内側
GitBook
上で動作しています
Classes are Useful
次の構造を持つことは非常に一般的です。
function
foo
()
{
let
someProperty
;
// Some other initialization code
function
someMethod
()
{
// Do some stuff with `someProperty`
// And potentially other things
}
// Maybe some other methods
return
{
someMethod
,
// Maybe some other methods
};
}
これはリビーリングモジュールパターン(revealing module pattern)と呼ばれ、JavaScriptではかなり一般的です(JavaScriptのクロージャを利用しています)。
ファイルモジュール
(グローバルスコープは良くないので、あなたは本当にそれを使うべきです)
を使用している場合、あなたのファイルは事実上同じです。しかし、人々が次のようなコードを書くケースがあまりにも多くあります。
let
someProperty
;
function
foo
()
{
// Some initialization code
}
foo
();
// some initialization code
someProperty
=
123
;
// some more initialization
// Some utility function not exported
// later
export
function
someMethod
()
{
}
私は継承が大好きではありませんが、私は人々がクラスを使用することで、コードをより良く整理することができる、ということを発見しました。同じ開発者が直感的に次のように書きます:
class
Foo
{
public
someProperty
;
constructor
()
{
// some initialization
}
public
someMethod
()
{
// some code
}
private
someUtility
()
{
// some code
}
}
export
=
new
Foo
();
また、単に開発者のことだけでなく、クラスを使って、優れた視覚化を実現する開発ツールを作成することはずっと一般的であり、また、チームが理解し維持する必要があるパターンが1つ少なくなります。
PS:
shallow
なクラス階層に関して、それが大幅な再利用とボイラープレートの削減を提供する場合、私の意見には間違いがありません。
前
Lazy Object Literal Initialization
次
Avoid Export Default
最終更新
2yr ago
リンクのコピー