2016-06-16 5 views
0

私はTypescriptで辞書を実装する方法を尋ねるのではなく、「Typescriptは一般的な辞書のユースケースに便利なインターフェイスを備えていますか?Typescriptは簡単な辞書のための "便利なインターフェイス"を提供しますか?

例:

私はアプリケーションを作成し、タイプTの辞書を必要としています。

このコードは有効ですが、基本的にボイラープレートです。これは自動的に私のために行うTypescript(lib.d.ts)のインターフェイスがありますか?それはコードのいくつかの行を保存し、私のコードベースをきれいに保つことができ、私は本当にホイールを再発明したくありません。

+1

です。JavaScriptのオブジェクトの基本的な機能を考慮すると、おそらくそうではありません。 'any'と宣言するだけで、同じことができます。 'Add 'やC#' Dictionary 'のようなメソッドはありません。または、ES2015をターゲットにできる場合は、[Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)を使用することをお勧めします。 –

+0

こんにちはリック、あなたが本当にここで尋ねたことについていくつかの不確実性があります、受け入れられた答えのコメントを参照してください。 – Alex

答えて

1

いいえ、typescriptには、この種のビルドインクラス/インタフェース/ユーティリティは付属していません。 Typescriptは基本的に単なる言語とコンパイラであり、上記の例で使用したindex signatureは、TSが連想集合の型付けに関して提供する唯一の構文です。そのdesign non-goals

ポイント6:

は、追加のランタイム機能やライブラリを提供します。代わりに、 TypeScriptを使用して既存のライブラリを記述します。

+0

これはどのように有効な答えがわかりません。 「私はTypescriptで辞書を実装する方法を尋ねるのではなく、むしろ「Typescriptは一般的な辞書のユースケースに便利なインターフェイスを備えていますか?」と答えています。 Typescriptは供給を行います。 – ArcSine

+0

@ArcSine質問者がすでに知っており、彼の例で使った 'インデックス署名'構文を意味しますか? – Alex

+0

彼はインターフェースでそれを使用していますが、直接使用することができます。基本的に彼は新しいインターフェースを定義せずに辞書をタイプすることができます。 – ArcSine

2

活字体はkeyvalueを入力するための標準的な表記法

let dict:{[key:string]:string[]} = {};

をサポートします。 keyの唯一の有効な値はnumberstring

+0

これは、この状況(私はそれをupvoted)でいくつかのユーザーには便利かもしれませんが、特に私の質問に答えるものではありません。ボイラープレートのインターフェイスコードを書くことを避けようとしていました。私が書いたインタフェースが 'lib.d.ts'かコンパイラかを知りたかったのです。 – Rick

+1

'let dict:{[key:string}:string []}'は、Typescriptでオブジェクトの値をどのようにバインドしたかを示します。 ES6には、typescript https://github.com/Microsoft/TypeScript/blob/master/lib/lib.es2015.collection.d.ts#l17-25で使用できる組み込みの辞書型がありますが、これは実際の辞書の種類は単にオブジェクトを入力するだけです。 – ArcSine

+0

まだ私が探していたものではありませんが、それにもかかわらず便利です。そのヘッドアップに感謝します。 – Rick

関連する問題