Skip to content
Auf dieser Seite

Type Guards

Weil der FilterSetConfig Typ sich aus mehreren Subtypen zusammensetzt ist es nicht einfach auf die Attribute zuzugreifen. Aus diesem Grund stellt die Bibliothek Type-Guards bereit.

isFilterSetValue

Dieser Type-Guard überprüft ob der übergebene Paramneter vom Typ FilterSetValueist:

ts
const config: FilterSetConfig<Category> = {
    id: { 
        value: 1
    }
}
...
if (isFilterSetValue(config.id)){
    config.id.value = 2
}

TIP

Dieser Type-Guard überprüft ob value nicht undefined ist. Wenn die Konfiguration {value:undefined} enthält wird diese nicht FilterSetValue erkannt.

isFilterSetRange

Dieser Type-Guard überprüft ob der übergebene Paramneter vom Typ FilterSetRangeist:

ts
const config: FilterSetConfig<Category> = {
    id: { 
        gt: 10
    }
}
...
if (isFilterSetRange(config.id)){
    config.id.gt = 3
}

isFilterSetExact

Dieser Type-Guard überprüft ob der übergebene Paramneter vom Typ FilterSetExactist:

ts
const config: FilterSetConfig<Category> = {
    id: { 
        exact: 1
    }
}
...
if (isFilterSetExact(config.id)){
    config.id.exact = 2
}

isFilterSetIn

Dieser Type-Guard überprüft ob der übergebene Paramneter vom Typ FilterSetInist:

ts
const config: FilterSetConfig<Category> = {
    id: { 
        in: [1]
    }
}
...
if (isFilterSetIn(config.id)){
    config.id.in = [2,3]
}

isFilterSetAffix

Dieser Type-Guard überprüft ob der übergebene Paramneter vom Typ FilterSetAffixist:

ts
const config: FilterSetConfig<Category> = {
    id: { 
        startswith: 1
    }
}
...
if (isFilterSetAffix(config.id)){
    config.id.startswith = 2
}

isFilterSetConfig

Dieser Type-Guard überprüft ob der übergebene Paramneter vom Typ FilterSetConfigist: Dieser kann in kombinaion mit anderen Guards genutzt werden für Komplexe Type,

ts
const config: FilterSetConfig<Book> = {
    category: { 
        id: {
            value: 1
        }
    }
}
...
if (isFilterSetConfig(config.category) && isFilterSetValue(config.category.id) ){
    config.category.id.value = 2
}