Typescript 字符串通用约束作为计算键

Typescript 字符串通用约束作为计算键,typescript,generics,Typescript,Generics,我想定义一个泛型类型,在这里我可以传递一个字符串值作为泛型参数,并使用它来定义类型上的键,例如: const foo:MyType={ 您好:“再见”//此键是必需的 酒吧:2间 } 我尝试将其定义为: const type MyType={ [key:T]:字符串, 酒吧:号码, }; 但是我得到了一个错误,即索引签名参数类型必须是“string”或“number”,即使在此上下文中,它也必须是字符串。这个问题有不同的语法吗?或者这是目前typescript的局限性?可能是这样的: con

我想定义一个泛型类型,在这里我可以传递一个字符串值作为泛型参数,并使用它来定义类型上的键,例如:

const foo:MyType={
您好:“再见”//此键是必需的
酒吧:2间
}
我尝试将其定义为:

const type MyType={
[key:T]:字符串,
酒吧:号码,
};

但是我得到了一个错误,即
索引签名参数类型必须是“string”或“number”
,即使在此上下文中,它也必须是字符串。这个问题有不同的语法吗?或者这是目前typescript的局限性?

可能是这样的:

const foo: MyType<'hello'> = {
  hello: "Goodbye",  // this key is required
  bar: 2
}

type MyType<K extends string> = {
    bar: number;
} & Record<K, string>
const foo:MyType={
您好:“再见”//此键是必需的
酒吧:2间
}
类型MyType={
条:数字;
}&记录

可能是这样的:

const foo: MyType<'hello'> = {
  hello: "Goodbye",  // this key is required
  bar: 2
}

type MyType<K extends string> = {
    bar: number;
} & Record<K, string>
const foo:MyType={
您好:“再见”//此键是必需的
酒吧:2间
}
类型MyType={
条:数字;
}&记录