I don't follow the link between "native javascript" and typescript. TS is compiled to JS. I think you can use a Map to achieve the same results with a php match. EDIT
This is a haphazardly written code complete with as close to replicated functionality you would expect from PHP match
class UnhandledMatchError extends Error {
constructor(value, ...args) {
super(...args)
this.name = "UnhandledMatchError"
this.message = `Unhandled match value of type ${typeof value}`
Error.captureStackTrace(this, UnhandledMatchError)
}
}
const match = item => new Map([
[100, "Super Thin"],
[300, "Thin"],
[400, "Normal"],
[600, "Bold"],
[900, "Heavy"]
]).get(item) ?? new UnhandledMatchError(item)
console.log(match(100))
>>> Super Thin
console.log(match(102))
>>> UnhandledMatchError: Unhandled match value of type number
I don't follow the link between "native javascript" and typescript. TS is compiled to JS. I think you can use a Map to achieve the same results with a php match. EDIT
This is a haphazardly written code complete with as close to replicated functionality you would expect from PHP match
As you already said: TS requires a compiler to JS. This article was meant for those writing JS directly.
Cool idea, can you give an example with Map?