\lstdefinelanguage{lTypescript}{
number suffixes={eEn},
alsoother={|~_><-},
moredelim=**[is][{\xlsthlwarning}]{|warn|}{|warn|},
moredelim=**[is][{\xlsthlerror}]{|err|}{|err|},
moredelim=**[il][{\xlsthlerror}]{|err|:},
moredelim=**[is][{\xlsthlinfo}]{|info|}{|info|},
moredelim=[is][\itshape\bfseries]{|ihl|}{|ihl|},
moredelim=[is][{}]{|plain|}{|plain|},
moredelim=**[il][{\color{gray!80!black}\bfseries}]{>imp>},
comment=[l]{//},
morecomment=[s]{/*}{*/},
morestring=[s]"",
escapeinside={!*}{*!},
morekeywords = {abstract,break,case,catch,class,continue,debugger,default,delete,do,else,enum,export,extends,finally,for,function,if,import,in,instanceof,new,null,return,super,switch,this,throw,try,typeof,var,while,with,as,implements,interface,let,package,private,protected,public,static,yield,constructor,declare,get,module,require,set,symbol,type,from,of,await,async},
morekeywords = [2]{boolean,any,const,void,string,number,undefined},
morekeywords = [3]{true,false},
morekeywords = [4]{},
morekeywords = [5]{},
morekeywords = [6]{},
morestring=[s]''
}
\RegisterLanguage[typescript]{ts}{lTypescript}