是键,值对可在typescript?如果是,怎么做。任何人都可以提供示例链接。


当前回答

是键值对可在Typescript?

是的。称为索引签名:

interface Foo {
   [key: string]: number;
}


let foo:Foo = {};
foo['hello'] = 123;
foo = {
  'leet': 1337
};
console.log(foo['leet']); // 1337

这里键是字符串,值是数字。

More

你可以使用es6 Map来处理合适的字典,由core-js填充。

其他回答

如果你想用下面的例子

例如:{ value1:“value1” }

并根据某些条件动态添加conditionalData,尝试

let dataToWrite: any = {value1: "value1"};

if(conditionalData)
   dataToWrite["conditionalData"] = conditionalData

你也可以考虑使用Record,像这样:

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

或者这样写:

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

最简单的方法是:

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;

KeyValue接口存在于使用typescript的angular库中。 如果你的项目是角型的,你就有了这个通用接口。 如果你在angular中不使用TS,你也可以使用它的声明来获得一个漂亮的通用KeyValue接口。

export declare interface KeyValue<K, V> {
    key: K;
    value: V;
}

是键值对可在Typescript?

是的。称为索引签名:

interface Foo {
   [key: string]: number;
}


let foo:Foo = {};
foo['hello'] = 123;
foo = {
  'leet': 1337
};
console.log(foo['leet']); // 1337

这里键是字符串,值是数字。

More

你可以使用es6 Map来处理合适的字典,由core-js填充。