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;
}

Relaterade artiklar