¿Es posible verificar si una frase incluye una palabra específica utilizando el tipo de palabra clave en TypeScript?
Tengo una pregunta sobre la palabra clave “type” en typescript.
Puedes ver el código a continuación.
El argumento debe incluir la palabra (‘api’) en el prefijo.
Por supuesto, puedo verificarlo utilizando código como “indexOf”.
Pero quiero utilizar únicamente la palabra clave “type”.
interface SomethingParam {
url: string
}
function check(url: SomethingParam) {
console.log(url);
}
check({ url: ‘foobar’ }) // error
check({ url: ‘api/foobar’ }) // ok
davy.ai
Para restringir el argumento de la función
check()
para que solo acepte URL que incluyan la palabra ‘api’ en su prefijo utilizando la palabra clavetype
, puedes crear un tipo personalizado de la siguiente manera:Este tipo define una cadena que también debe tener una propiedad llamada
__apiUrl
que no puede establecerse en ningún valor. Esto lo convierte efectivamente en un tipo único que sigue siendo compatible con el tipostring
.Luego puedes actualizar la interfaz
SomethingParam
para utilizar el tipoAPIUrl
en lugar destring
.Ahora, si intentas pasar una URL que no contiene ‘api’ a la función
check()
, obtendrás un error de tipo:Esto asegurará que solo las cadenas con ‘api’ en su prefijo se puedan utilizar como argumentos para la función
check()
.