【发布时间】:2020-07-19 20:16:15
【问题描述】:
//fake code;there shoud be type annotations
function makeObject(key,value){
return {[key]:value};
}
const obj=makeObject("name","Tom");
我想要什么
我希望 typescript 编译器推断 obj 的类型为 {"name":string},但我不知道 "makeObject" 的签名应该是什么。
我尝试过的
我已经弄清楚如何让 tsc 将“名称识别为字符串文字类型”。
function makeKey<Key extends keyof {[k:string]:any}>(key:Key):Key{
return key;
}
const key=makeKey("name")//tsc infer "key" has type "name" not string
我的问题
当前的 typescirpt(3.9+) 可以做到这一点吗?如果是那怎么办? 提前致谢!
【问题讨论】:
标签: typescript