TypeScript联合类型和类型断言

联合类型 和类型断言

  1. 一个变量可以有 有两种的类型定义 |符号连接。
  2. 如果在联合类型不确定类型的情况下只能使用联合 类型 的共有的方法。
  3. 只有在确定类型的时候 。才能使用 确定类型的方法。比如 string 类型的length 在不确定是string的时候不能使用。但是们可以用 if 或者as 进行类型断言。在不赋值情况下 进行类型断言(ps 类型断言后就能用对应断言类型的 独有的方法了)。

// type inference
let str = 'str'
str = 'www.z88j.com'

// union types
let numberOrString:number |string

function getLength(input:string |number) :number{
    const str = input as string//类型断言
    if (str.length){
        return str.length
    }else{
        const number = input as number
        return number.toString().length
    }
}

//type guard
function getLength2(input:string |number) :number{
    if (typeof  input === 'string'){//if 类型断言
        return input.length
    }else{
        return input.toString().length
    }
}

TypeScript联合类型和类型断言

原创文章,作者:星辰,如若转载,请注明出处:https://www.z88j.com/391.html

(16)
打赏 微信扫一扫 微信扫一扫
上一篇 2021年8月18日 上午10:45
下一篇 2021年8月19日 下午8:38

相关推荐

  • vue ref属性详解 通俗易懂

    vue ref属性 场景 。如果我们想获取一个dom节点可以用ref属性。在vue 里面每一个标签都有一个ref属性。 可以获取该节点的html 类似于document.getEl…

    js 2021年8月28日
    98800
  • TypeScript 安装教程

    TypeScript 安装教程 1. 第一步我们本机要有 node 和npm 环境,我们直接去node官网下载node 和npm即可 node自带npm安装node即可。 2. 安…

    ts 2021年8月18日
    92700

发表回复

登录后才能评论

Warning: error_log(/www/wwwroot/www.z88j.com/wp-content/plugins/spider-analyser/#log/log-0604.txt): failed to open stream: No such file or directory in /www/wwwroot/www.z88j.com/wp-content/plugins/spider-analyser/spider.class.php on line 2900