繁体   English   中英

如何创建一个将其值作为其类型的数组?

[英]How can I create an Array that has its values as its type?

如何编写以下逻辑但不重复 Array 类型的键?

type UserFillable = [
  'first_name',
  'last_name',
  'email',
  'sector',
]

export default class User {
  public static readonly fillable: UserFillable = [
    'first_name',
    'last_name',
    'email',
    'sector',
  ]
}

另一个例子是......

export default class User {
  public static readonly fillable = [
    'first_name',
    'last_name',
    'email',
    'sector',
  ] as [
    'first_name',
    'last_name',
    'email',
    'sector',
  ]
}

我建议您使用const断言来要求编译器为您正在初始化的属性推断出最具体的类型:

export default class User {
    public static readonly fillable = [
        'first_name',
        'last_name',
        'email',
        'sector',
    ] as const
}

这将自动成为您要查找的字符串文字类型readonly元组

// (property) User.fillable: readonly 
//   ["first_name", "last_name", "email", "sector"]

您可能不再需要定义UserFillable类型,但如果您这样做,最好根据User.fillable来定义,反之亦然:

type UserFillable = typeof User.fillable;

Playground 代码链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM