类型收窄(Narrowing)
试想我们有这样一个函数,函数名为 padLeft:
functionpadLeft(padding:number|string, input:string):string{thrownewError("Not implemented yet!");}
该函数实现的功能是:
如果参数 padding 是一个数字,我们就在 input 前面添加同等数量的空格,而如果 padding 是一个字符串,我们就直接添加到 input 前面。
让我们实现一下这个逻辑:
functionpadLeft(padding:number|string, input:string){returnnewArray(padding +1).join(" ")+ input;
// Operator '+' cannot be applied to types 'string | number' and 'number'.}