2017-06-08 8 views
2

ライブラリが使用する一般的なパターンは、その型の型または配列を関数の引数として受け入れます。例:パターンTの名前|配列<T>

interface JQuery { 
    add(selector: HTMLElement | HTMLElement[]): this; 
} 

このパターンの名前はありますか。読みやすさを向上させるために別名を付けたいと思います。私の最初の推測はTypeOrArray<T>ですが、これはぎこちなく聞こえなくなり、潜在的に直感的ではないかもしれません。

:それは私が使用していると慣用的な何かが良い答えであるかもしれないものだから、私はこのtypescriptをタグ付けしました。ただし、これはジェネリックスを使用する言語に適用する必要があります。

答えて

2

この構文は、単一のパラメータに対して複数の型を定義できるようにするtypescriptの方法です。

セレクタは、HTMLElementまたはHTMLElementの配列のいずれかです。

あなたはどのようなタイプのために何ができる同じことは:

function example(parameter: number | string) { 

} 

example(5) // works 

example('2') // works 

example(new Date()) // fails 
1

私はパターンが実際に「タイプの種類や配列」ではないと思います。

「これは、ユーザーにとって便利だと思われるライブラリの作成者」と同じです。

Typescriptのユニオンタイプは、ここではかなりよく似ていますが、名前をあまり考えずに、特定の関数に許容されるタイプの組み合わせを記述することができます。あなたのタイプに名前を付けるために傾いている場合

、適切な名前が

type HTMLElementsToAdd = HTMLElement | HTMLElement[]; 

目的はタイプだけで要素の配列ではないことを示すためである、とadd方法に固有である可能性があります。 jQueryのAPIドキュメントでは、特定のパターンにほとんど従わないことを確認し、実際には許容タイプを記述するために「または」を使用します。for example

関連する問題