snippettypescriptCritical
How to define a regex-matched string type in Typescript?
Viewed 0 times
typescripthowmatchedregexdefinestringtype
Problem
Is it possible to define an interface which has some information on the format of a string? Take the following example:
an example would be:
My question: Is there a way to define the type for
interface timeMarkers{
markerTime: string[]
};an example would be:
{
markerTime: ["0:00","1:30", "1:48"]
}My question: Is there a way to define the type for
markerTime such that that the string value must always match this regex, instead of declaring it as simply string[] and going from there? var reg = /[0-9]?[0-9]:[0-9][0-9]/;Solution
There is no way to define such a type. There is a proposal on GitHub to support this, but it currently does not appear to be a priority. Vote on it and maybe the team might include it in a future release.
Edit
Starting in 4.1 you can define a template literal type that would validate the string without actually defining all the options:
Playground Link
Edit
Starting in 4.1 you can define a template literal type that would validate the string without actually defining all the options:
type MarkerTime =`${number| ''}${number}:${number}${number}`
let a: MarkerTime = "0-00" // error
let b: MarkerTime = "0:00" // ok
let c: MarkerTime = "09:00" // okPlayground Link
Code Snippets
type MarkerTime =`${number| ''}${number}:${number}${number}`
let a: MarkerTime = "0-00" // error
let b: MarkerTime = "0:00" // ok
let c: MarkerTime = "09:00" // okContext
Stack Overflow Q#51445767, score: 228
Revisions (0)
No revisions yet.