接口 - 在 TypeScript 中包含特定字符串和迭代整数拼接的动态键
我想声明一个接口,其中的键将包含特定的字符串值,这些值是某些固定字符串和一个递增值的组合,例如('first1','first2','first','first4')。
这里的键是固定字符串(即 'first')和一个递增值(即 1,2,3,4)的连接。
我不想使用通用的 Object,因为在我的特定情况下,键应该包含一些特定的字符串
[key: string]: string;
例如
我想为这两个对象声明一个通用接口
物体1
{
'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;
}
答案#1
你可以为特定字符串编写类型约束:
type FirstStrings = "first1" | "first2" | "first3" | "first4";
然而,不可能将类型限制为匹配某个模式的字符串。在 GitHub 上有一个关于添加对此支持的建议。
对于索引类型,甚至不可能将其设为字符串字面量类型。你将不得不这样做:
interface MyInterface {
user: User;
login: boolean;
first1?: string;
first2?: string;
first3?: string;
first4?: string;
first5?: string;
}
