是键,值对可在typescript?如果是,怎么做。任何人都可以提供示例链接。
当前回答
TypeScript有Map。你可以用like:
public myMap = new Map<K,V>([
[k1, v1],
[k2, v2]
]);
myMap.get(key); // returns value
myMap.set(key, value); // import a new data
myMap.has(key); // check data
其他回答
是键值对可在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填充。
键值对的一个例子是:
[key:字符串]:字符串
当然,你可以把任何东西作为值
TypeScript有Map。你可以用like:
public myMap = new Map<K,V>([
[k1, v1],
[k2, v2]
]);
myMap.get(key); // returns value
myMap.set(key, value); // import a new data
myMap.has(key); // check data
一种简洁的方法是使用元组作为键值对:
const keyVal: [string, string] = ["key", "value"] // explicit type
const keyVal2 = ["key", "value"] as const // inferred type with const assertion
const [key, val] = ["key", "val"] // usage with array destructuring
你可以创建一个通用的KeyValuePair类型来实现重用:
type KeyValuePair<K extends PropertyKey, V = unknown> = [K, V]
const kv: KeyValuePair<string, string> = ["key", "value"]
TS 4.0
为更好的文档和工具支持提供标记的元组元素:
type KeyValuePairNamed = [key: string, value: string] // "key" and "value" labels
兼容性
[key, value]元组还可以确保与JS内置对象的兼容性:
物体(尤指物体)。条目,Object.fromEntries Map,尤其是Map.prototype.entries和新的Map()构造函数 Set,尤其是Set.prototype.entries
操场上
KeyValue接口存在于使用typescript的angular库中。 如果你的项目是角型的,你就有了这个通用接口。 如果你在angular中不使用TS,你也可以使用它的声明来获得一个漂亮的通用KeyValue接口。
export declare interface KeyValue<K, V> {
key: K;
value: V;
}
推荐文章
- 从元组/数组值派生联合类型
- 如何在Angular2 ngSwitch语句中使用typescript enum值
- 找到合成属性@panelState。请在您的应用程序中包含“BrowserAnimationsModule”或“NoopAnimationsModule”。
- Angular 2+和debounce
- 在TypeScript箭头函数中指定返回类型
- 如何使用jQuery与TypeScript
- Angular 2模板中的标签是什么意思?
- Typescript接口-可能使“一个或另一个”属性要求?
- 如何扩展/继承组件?
- 错误:'types'只能在.ts文件中使用- Visual Studio Code使用@ts-check
- Typescript ReferenceError: exports没有定义
- React组件中使用TypeScript的默认属性值
- Angular 5 -复制到剪贴板
- TypeScript枚举对象数组
- Angular 2显示和隐藏一个元素