动态键,包含typescript中特定字符串和迭代整数的串联



我想声明一个接口,该接口将具有包含特定字符串值的键,这些值是某个固定字符串和增量值的组合,例如("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;
}