Hur kontrollerar man om en sträng bara innehåller mellanslag eller är tom i TypeScript?
Jag försöker skapa en funktion som hanterar mellanslag eller tomma strängar med TypeScript
Jag provade den här funktionen:
export const isEmpty = function(text: string): string {
return text === null || text.match(/^ *$/) !== null;
};
men jag får Typ 'boolean' kan inte tilldelas typen 'string'
Vad skulle vara det bästa sättet att kontrollera om en sträng är tom eller om den bara innehåller blanksteg och tabbar med TypeScript?
Svar #1
Ingen behov av Regex. Gör bara
export const isEmpty = function(text: string): boolean{
return (!text || text.trim() === "");
};
Svar #2
Felet Type 'boolean' is not assignable to type 'string' beror på att funktionssignaturen anger att returtypen är en string när den faktiskt returnerar en boolean.
Definitionen bör vara:
export const isEmpty = function(text: string): boolean {
return text === null || text.match(/^ *$/) !== null;
};
Vitt utrymme Allt-i-allo
Observera att blanksteg kan vara någon av följande:
- mellanslagstecken
- tabbtecken
- vagnreturtecken
- ny rad-tecken
- vertikal tabbtecken
- form feed-tecken
För att hantera dessa fall bör reguljära uttrycket vara:
/^\s*$/
Funktionen kan skrivas:
export function isEmpty(text: string): boolean {
return text == null || text.match(/^\s*$/) !== null;
}
