typescript - Typescript - 使用通用键扩展对象
问题描述
我想要一种方法,它接受一个对象并向它添加一个属性,例如这个:
const augment = <T extends {}, K extends string>(obj: T, key: K): T & { [x in K]: string } => {
return { ...obj, [key]: "someString" };
};
这失败了
Type 'T & { [x: string]: string; }' is not assignable to type 'T & { [x in K]: string; }'.
我知道那key
是不保留的keyof K
方面。在一个理想的世界里,如果我打电话
const anObj = { aProp: 'aVal' };
const anotherObj = augment( anObj, "aKey" );
我想要anotherObj
to be的签名{ aProp: 'aVal', aKey: string }
。特别是当关键参数是文字时。有什么建议吗?
解决方案
推荐阅读
- c# - 应该兼容的不兼容的 .NET Standard 程序集?
- node.js - 无法在节点 js 中显示静态文件夹中的图像
- mysql - Symfony 4 SQLSTATE [42000] 指定的键太长
- ios - 您如何控制要下载的图像数量?
- ios - 自定义标头在发送到服务器时转换为小写(使用 NSURLSession)
- flutter - 如何实现一次只刷一张卡以消除颤动的动作?
- python - 如何在 Databricks 中引用笔记本的路径/%run 在做什么?
- c++ - 如何实现通用 C++ 来配置功能?
- javascript - 将多维字符串转换为数组 Javascript
- javascript - Javascript 在控制台中返回“slowAES is not defined”