可以定义一个包含字符串格式信息的接口吗?以下面的例子为例:

interface timeMarkers{
    markerTime: string[]        
};

例如:

{
   markerTime: ["0:00","1:30", "1:48"]                   
}

我的问题是:有没有办法定义markerTime的类型,这样字符串值就必须始终与这个正则表达式匹配,而不是简单地将其声明为string[]并从那里开始?

var reg = /[0-9]?[0-9]:[0-9][0-9]/;

推荐答案

没有办法定义这样的类型.GitHub上有一个proposal来支持这一点,但目前似乎没有优先考虑.投票表决,也许团队会在future 的版本中加入它.

Edit

从4.1开始,您可以定义一个验证字符串的类型,而无需实际定义所有选项:

type MarkerTime =`${number| ''}${number}:${number}${number}`

let a: MarkerTime = "0-00" // error
let b: MarkerTime = "0:00" // ok
let c: MarkerTime = "09:00" // ok

Playground Link

Typescript相关问答推荐

映射类型中和映射类型之间的通用变量推断

如何使用Generics保留构造函数的类型信息?

如何在ts中使用函数重载推断参数类型

防止获取发出不需要的请求

创建一个根据布尔参数返回类型的异步函数

打字类型保护递归判断

如何使用Geojson模块和@Types/Geojson类型解析TypeScrip中的GeoJSON?

如何创建一家Reduxstore ?

如何缩小函数的返回类型?

API文件夹内的工作员getAuth()帮助器返回:{UserID:空}

在TypeScript中扩展重载方法时出现问题

如何使这种一对一关系在旧表上起作用?

在抽象类属性定义中扩展泛型类型

在Reaction中折叠手风琴

如何创建内部和外部组件都作为props 传入的包装器组件?

扩展对象的此内容(&Q;)

从以下内容之一提取属性类型

使用&reaction测试库&如何使用提供程序包装我的所有测试组件

在tabel管理区域react js上设置特定顺序

两个子组件共享控制权