キーと値のペアはtypescriptで利用できますか?はいの場合、それを行う方法。誰でもサンプルのリンク例を提供できますか?
キーと値のペアはtypescriptで利用できますか?はいの場合、それを行う方法。誰でもサンプルのリンク例を提供できますか?
回答:
Key-ValueペアはTypescriptで使用できますか?
はい。インデックス署名と呼ばれる:
interface Foo {
[key: string]: Bar;
}
let foo:Foo = {};
ここにキーstringと値がありますBar。
あなたはES6を使用することができMap、適切な辞書、のためによりpolyfilledcore-js。
key。呼び出す必要はありません。たとえば、次のように書くこともできます[countryCode: string]: string。読みやすさのために素晴らしい。
最も簡単な方法は次のようなものです。
var indexedArray: {[key: string]: number}
使用法:
var indexedArray: {[key: string]: number} = {
foo: 2118,
bar: 2118
}
indexedArray['foo'] = 2118;
indexedArray.foo= 2118;
let foo = indexedArray['myKey'];
let bar = indexedArray.myKey;
Bar
Key-ValueペアはTypescriptで使用できますか?
C#のKeyValuePair <string、string>を考えた場合、いいえ、ただし自分で簡単に定義できます。
interface KeyValuePair {
key: string;
value: string;
}
使用法:
let foo: KeyValuePair = { key: "k", value: "val" };
KeyValuePairはリストではありませんが、リストのエントリである可能性があります。多分あなたは探していList<>ますか?stackoverflow.com/questions/23096260/…を
質問者のためではなく、興味のある他のすべてのために:参照:キーと値のペアのTypescript Mapを定義する方法。ここで、keyは数値で、valueはオブジェクトの配列です
したがって、解決策は次のとおりです。
let yourVar: Map<YourKeyType, YourValueType>;
// now you can use it:
yourVar = new Map<YourKeyType, YourValueType>();
yourVar[YourKeyType] = <YourValueType> yourValue;
乾杯!
Map定義されていますか?Angular固有ですか?
次のRecordように、の使用を検討することもできます。
const someArray: Record<string, string>[] = [
{'first': 'one'},
{'second': 'two'}
];
または次のように書きます:
const someArray: {key: string, value: string}[] = [
{key: 'first', value: 'one'},
{key: 'second', value: 'two'}
];
class Pair<T1, T2> {
private key: T1;
private value: T2;
constructor(key: T1, value: T2) {
this.key = key;
this.value = value;
}
getKey() {
return this.key;
}
getValue() {
return this.value;
}
}
const myPair = new Pair<string, number>('test', 123);
console.log(myPair.getKey(), myPair.getValue());
簡潔な方法は、タプルをキーと値のペアとして使用することです。
const keyVal: [string, string] = ["key", "value"] // explicit type
// or
const keyVal2 = ["key", "value"] as const // inferred type with const assertion
[key, value] タプルは、JS組み込みオブジェクトへの互換性も保証します。
Object、特に Object.entries、Object.fromEntriesMap、特に Map.prototype.entriesとnew Map()コンストラクタSet、特に Set.prototype.entriesKeyValuePair再利用可能なジェネリック型を作成できます。
type KeyValuePair<K extends string | number, V = unknown> = [K, V]
const kv: KeyValuePair<string, string> = ["key", "value"]
今後のTS 4.0は、より良いドキュメントとツールのサポートのために名前付き/ラベル付きタプルを提供します:
type KeyValuePairNamed = [key: string, value: string] // add `key` and `value` labels
const [key, val]: KeyValuePairNamed = ["key", "val"] // array destructuring for convenience