Zoeken op website

Hoe kan ik een willekeurige stringoptie toevoegen aan een TypeScript literal string enum?


Ik probeer elke willekeurige tekenreekswaarde toe te staan op een letterlijke tekenreeks type en intellisense toe te staan. Beschouw het volgende type:

type possibleValues = 'value0' | 'value1' | 'value2'

Dit in vscode zal tonen

Maar als ik mijn code verander naar:

type possibleValues = 'value0' | 'value1' | 'value2' | string

Ik krijg geen intellisense meer, maar de code zal naar verwachting werken.

Mijn vraag is, is er een manier om dit type zo in te stellen dat het een willekeurige tekenreeks waarde toestaat terwijl het intellisense biedt?

Antwoord #1

Ik weet niet zeker of dit werkt voor variabele declaratie. Maar voor Functies en klassen kan de volgende aanpak worden gebruikt:

function f(a: "value1" | "value2")
function f(a: string)
function f(a: string) {

}

De eerste overload wordt als eerste beschouwd (wat automatisch aanvullen biedt). Als deze niet meer overeenkomt, wordt de tweede geraadpleegd.

Gerelateerde artikelen