我想声明一个接口,该接口将具有包含特定字符串值的键,这些值是某个固定字符串和增量值的组合,例如("first1"、"first2"、"第一"、"第四")。
这里的键是固定字符串(即"first")和增量值(即(1,2,3,4))的串联。
我不想使用一般的对象,因为在我的特定情况下,密钥应该包含一些特定的字符串
[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;
}
您可以为特定字符串编写类型约束:
type FirstStrings = "first1" | "first2" | "first3" | "first4";
但是,不可能将类型约束为与模式匹配的字符串。github上有一个关于添加对此支持的建议。
在索引类型的情况下,甚至不可能使其成为字符串文字类型。你必须这样做:
interface MyInterface {
user: User;
login: boolean;
first1?: string;
first2?: string;
first3?: string;
first4?: string;
first5?: string;
}