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

时间:2016-07-27 13:19:10

标签: typescript interface

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

1 个答案:

答案 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;
}