| ▲ | spartanatreyu a day ago | |||||||||||||||||||||||||
Not that person, but is there an easy way to write something like a basic semver? export type SemVer = `${number}.${number}.${number}`; Could you extend it to work with regex groups like: export const SemVerRegex = /^(?<major>0|[1-9]\d)\.(?<minor>0|[1-9]\d)\.(?<patch>0|[1-9]\d)(?:-((?:0|[1-9]\d|\d[a-zA-Z-][0-9a-zA-Z-])(?:\.(?:0|[1-9]\d|\d[a-zA-Z-][0-9a-zA-Z-]))))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/; Could the groups be extracted so you the type back if you ran the regex on a string like: "1.2.3", or "1.2.3-prerelease"? | ||||||||||||||||||||||||||
| ▲ | matt_kantor 17 hours ago | parent | next [-] | |||||||||||||||||||||||||
I don't understand the second part of your comment (that's a value, not a type), but the first part looks like this:
Here's a playground: https://www.typescriptlang.org/play/?filetype=js#code/PQKhAI... | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | g947o a day ago | parent | prev [-] | |||||||||||||||||||||||||
it is possible to do many of these with @typedef, but it gets difficult with JSDoc very quickly. In TypeScript you can easily create multi-line type aliases. Not quite so in JSDoc. | ||||||||||||||||||||||||||