typescript - How to type this advanced function in Typescript?
问题描述
This is the tricky function :
function getPropertyName(obj, expression) {
var res = {};
Object.keys(obj).map(k => { res[k] = () => k; });
return expression(res)();
}
And my unsuccessful attempt to type it :
getPropertyName<T>(obj: T, expression: (o: T) => any): string {
let res = {};
Object.keys(obj).map(k => { res[k] = () => k; });
return expression(res as T)();
}
解决方案
这不会给你任何错误,但是,你的意图对我来说并不完全清楚:
getPropertyName<T>(obj: T, expression: (o: T) => any): string {
const res: { [key: string]: any } = {};
Object.keys(obj).map((k) => { res[k] = () => k; });
return expression(res as T)();
}
推荐阅读
- c# - 处理指数
- r - 如何在 R 公式中指定一些带有空格的自变量
- c# - AVPlayer 平移手势在 iOS 13 上不起作用
- embedded - 数据转换:将 4 字节数据从数组分配到 1 字节数组
- javascript - react javascript - json如何将多个数组元素合并为一个字符串
- sql - 将 SQL SELECT 结果列为列名和值对
- python - 在 Python 3.x 中解码邮件主题 Thunderbird
- reactjs - 在 React Native 中向状态数组添加数据
- canvas - 无法让滚动条在 Tkinter 中用于画布
- javascript - 未捕获的 TypeError:p.addEventListener 不是函数,我该如何解决?