我想声明一个接口,它将包含包含特定字符串值的键,这些字符串值是某些固定字符串和增量值的组合,例如(' first1',' first2',' first',' first4')。
这里的关键是固定字符串的连接,即“第一个'和增量值,即(1,2,3,4)。
我不想在我的特定情况下使用通用对象,键应该包含一些特定的字符串
[key: string]: string;
e.g。
我想为这两个对象声明一个公共接口
Object1
{
'user': admin,
'login': true,
'first1': 1,
'first2': 2,
'first3': 3;
'first4': 4;
'first5': 5;
}
对象2
{
'user': guest,
'login': false,
'first1': 1,
'first2': 2;
'first3': 3;
}
答案 0 :(得分:1)
您可以为特定字符串编写类型约束:
type FirstStrings = "first1" | "first2" | "first3" | "first4";
但是,无法将类型约束为与模式匹配的字符串。 github上有suggestion关于添加对此的支持。
在索引类型的情况下,甚至不可能使它成为字符串文字类型。你必须做这样的事情:
interface MyInterface {
user: User;
login: boolean;
first1?: string;
first2?: string;
first3?: string;
first4?: string;
first5?: string;
}