  Recently, codes for correcting a burst of errors have attracted significant
attention. One of the most important reasons is that bursts of errors occur in
certain emerging techniques, such as DNA storage. In this paper, we investigate
a type of error, called a $(t,s)$-burst, which deletes $t$ consecutive symbols
and inserts $s$ arbitrary symbols at the same coordinate. Note that a
$(t,s)$-burst error can be seen as a generalization of a burst of insertions
($t=0$), a burst of deletions ($s=0$), and a burst of substitutions ($t=s$).
Our main contribution is to give explicit constructions of $q$-ary
$(t,s)$-burst correcting codes with $\log n + O(1)$ bits of redundancy for any
given non-negative integers $t$, $s$, and $q \geq 2$. These codes have optimal
redundancy up to an additive constant. Furthermore, we apply our $(t,s)$-burst
correcting codes to combat other various types of errors and improve the
corresponding results. In particular, one of our byproducts is a permutation
code capable of correcting a burst of $t$ stable deletions with $\log n + O(1)$
bits of redundancy, which is optimal up to an additive constant.
