কী-মান জুটি টাইপস্ক্রিপ্টে উপলব্ধ?


130

কী, মান জোড়া টাইপস্ক্রিপ্টে উপলব্ধ? যদি হ্যাঁ তা কীভাবে করবেন। যে কেউ নমুনা উদাহরণ লিঙ্ক সরবরাহ করতে পারেন।


হ্যাঁ, এটি আপনার প্রয়োজনীয়তা নির্দিষ্ট করতে পারেন?
— তাহা নকভি

প্রকারের স্ক্রিপ্টগুলি জাভাস্ক্রিপ্টে স্থানান্তর করে (সংকলন করে না), তাই জাভাস্ক্রিপ্টের সমস্ত বৈশিষ্ট্য টাইপ স্ক্রিপ্টে উপলব্ধ। যেমন আপনি যদি নিজের কোডটি জেএসে লিখেন এবং এর প্রসারকে .ts তে পরিবর্তন করেন তবে এটি আপনার জেএস কোডের মতোই সূক্ষ্মভাবে কাজ করবে। তে এটি সম্পর্কে আরও জানতে: - typescriptlang.org/docs ।
— অজয়

উত্তর:


174

কী-মান জুটি টাইপস্ক্রিপ্টে উপলব্ধ?

হ্যাঁ. একটি সূচক স্বাক্ষর বলা হয়েছে :

interface Foo {
   [key: string]: Bar;
} 
let foo:Foo = {};

এখানে কীগুলি রয়েছে stringএবং মানগুলি Bar।

অধিক

আপনি Mapযথাযথ অভিধানগুলির জন্য একটি এস 6 ব্যবহার করতে পারেন , এর মাধ্যমে পলিফিল্ডcore-js ।


1
এটি একটি মানচিত্র বা অভিধান। আপনি কিছু সমতুল্য একটি সি # KeyValuePair করতে চান তাহলে, উত্তর দেখার stackoverflow.com/questions/36467469/...
— জ্যাক মিলার

4
জেনেও খুব সুন্দর, আপনার এটিকে কল করার দরকার নেই key। আপনি, উদাহরণস্বরূপ, এই লিখতে পারেন: [countryCode: string]: string। পাঠযোগ্যতার জন্য দুর্দান্ত।
— জেফ হুইজম্যানস


130

সহজ উপায়টি এমন কিছু হবে:

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;

3
এটি অনেক সাহায্য করেছে - ইন্টারফেস পদ্ধতির চেয়ে কম কোড কারণ এটির বর্ণনা Bar
— দেওয়ার

আপনি কি এর উদাহরণ ব্যবহার করেছেন?
— trebor74

1
indexedArray = {}; indexedArray ["one"] = 1; / * ভাল * / indexedArray ["two"] = "দুই"; / ব্যর্থ * /
— জেইমে

22

কী-মান জুটি টাইপস্ক্রিপ্টে উপলব্ধ?

আপনি যদি কোনও সি # কীভ্যালিউ পেয়ার <স্ট্রিং, স্ট্রিং> : না বলে মনে করেন তবে আপনি সহজেই নিজেকে নির্ধারণ করতে পারেন:

interface KeyValuePair {
    key: string;
    value: string;
}

ব্যবহার:

let foo: KeyValuePair = { key: "k", value: "val" };

4
কিছুটা মজার, ইতিমধ্যে 0 টি যোগফলের সাথে 6 টি ভোট কী এই সমাধান সম্পর্কে খারাপ তা কি মন্তব্যগুলিকে যুক্ত করে নেওয়ার কথা মনে করবেন?
— জ্যাক মিলার

7
আমিও জানতে চাই ডাউন ভোটাররা কখনও কোনও মন্তব্য করেন না, আমি মাঝে মাঝে ভাবি কারণ তারা নিজেরাই আরও ভাল সমাধান জানেন না।
— রুয়ান

আমি ডাউনওয়েট করি নি তবে এই সমাধানটিতে অ্যাড, পাওয়ার, রিমুভ করা ইত্যাদি নেই
— ডনিশ

2
পছন্দ করুন ক KeyValuePairএকটি তালিকা নয়, তবে এটি কোনও তালিকার একটি এন্ট্রি হতে পারে। আপনি কি খুঁজছেন List<>? স্ট্যাকওভারফ্লো.com
— জ্যাক মিলার

কীভাবে মানটি পেতে কী ব্যবহার করবেন? এটি কি এর মতো: কীভ্যালিউপায়ার ["কে"]?
— হাইজেনবার্গ

15

প্রশ্নকর্তার জন্য নয়, আগ্রহী অন্য সকলের জন্য: দেখুন: কী মান জোড়ার টাইপস্ক্রিপ্ট মানচিত্রটি কীভাবে সংজ্ঞায়িত করতে হয়। যেখানে কীটি একটি সংখ্যা এবং মান হ'ল বস্তুর একটি অ্যারে

সমাধান তাই:

let yourVar: Map<YourKeyType, YourValueType>;
// now you can use it:
yourVar = new Map<YourKeyType, YourValueType>();
yourVar[YourKeyType] = <YourValueType> yourValue;

চিয়ার্স!


Mapসংজ্ঞায়িত কোথায় ? এটি কৌনিক নির্দিষ্ট?
— জ্যাক মিলার

1
@ জ্যাকমিলার মানচিত্রটি ES6 দ্বারা সংজ্ঞায়িত করা হয়েছে: developer.mozilla.org/en-US/docs/Web/JavaScript/References/…
— র্যান্ডলফো

1
আপনার ভার [আপনারকি টাইপ] = XXX। এটি মানচিত্রে কোনও উপাদান সেট করে না। এটি একটি সম্পত্তি সেট করে।
— এমকিউলিভ

আইই ব্রাউজার মানচিত্র সমর্থন করে না, কোন বিকল্প?
— রাহুল উপাধ্যায়

12

আর একটি সহজ উপায় একটি টিপল ব্যবহার করা হয় :

// Declare a tuple type
let x: [string, number];
// Initialize it
x = ["hello", 10];
// Access elements
console.log("First: " + x["0"] + " Second: " + x["1"]);

আউটপুট:

প্রথম: হ্যালো দ্বিতীয়: 10


10

আপনি এটি ব্যবহার করেও বিবেচনা করতে পারেন Record:

const someArray: Record<string, string>[] = [
    {'first': 'one'},
    {'second': 'two'}
];

বা এই জাতীয় কিছু লিখুন:

const someArray: {key: string, value: string}[] = [
    {key: 'first', value: 'one'},
    {key: 'second', value: 'two'}
];

9

একটি মূল মান জোড়ার উদাহরণ হ'ল:

[key: string]: string

আপনি মান হিসাবে যে কোনও কিছু রাখতে পারেন - আপনি যদি প্রোগ্রামগতভাবে মানগুলি তৈরি করতে থাকেন তবে এর মানগুলি বিভিন্ন রকম হয় তবে আপনি এটি রাখতে পারেন:

[key: string]: any

যদিও আপনার নিজের বিবেচনার সাথে any:) এর সাথে এগিয়ে যান


1
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());

আপনি যদি ব্যাকএন্ড থেকে আগত ডেটা টাইপ করার চেষ্টা করছেন তবে এটি কোনও সহায়ক নয়।
— ম্যাথিজস সেগারস

@ ম্যাথিজসিজার্স এই ক্লাসটি কোনও কংক্রিটের ধরণ নয়। আপনার
— শ্রেণিবদ্ধ

1

একটি সংক্ষিপ্ত উপায় হ'ল টিপলটিকে কী-মান জোড় হিসাবে ব্যবহার করা :

const keyVal: [string, string] =  ["key", "value"] // explicit type
// or
const keyVal2 = ["key", "value"] as const // inferred type with const assertion

[key, value] টিপলস জেএস অন্তর্নির্মিত বস্তুর সাথে সামঞ্জস্যতাও নিশ্চিত করে:

আপনি পুনরায় KeyValuePairব্যবহারযোগ্যতার জন্য জেনেরিক প্রকার তৈরি করতে পারেন :

type KeyValuePair<K extends string | number, V = unknown> = [K, V]
const kv: KeyValuePair<string, string> = ["key", "value"]

টিএস 4.0: নামযুক্ত টিপলস

আসন্ন টিএস 4.0 উন্নত ডকুমেন্টেশন এবং সরঞ্জাম সরবরাহের জন্য নামযুক্ত / লেবেলযুক্ত টিপল সরবরাহ করে:

type KeyValuePairNamed = [key: string, value: string] // add `key` and `value` labels
const [key, val]: KeyValuePairNamed = ["key", "val"] // array destructuring for convenience

খেলার মাঠের উদাহরণ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.