TypeScript(八):类型别名和类型断言

2021-05-09  本文已影响0人  林ze宏
function sum(x: number, y: number): number {
  return x + y
}
const sum2: (x: number, y: number) => number = sum;

上面 sum2 函数类型定义很麻烦,可以使用类型别名:

type PlusType = (x: number, y: number) => number;

function sum(x: number, y: number): number {
  return x + y
}

const sum2: PlusType  = sum;

类型别名,最常用的是使用联合类型

type NameResolver = () => string;
type NameOrResolver = string | NameResolver; // 联合类型

// 如果参数是字符串,则直接返回,如果是方法,则执行方法
function getName(n: NameOrResolver): string {
  if (typeof n === 'string') {
    return n
  } else {
    return n()
  }
}
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
  }
}

另外一种方式写法:

function getLength(input: string | number) : number {
  if((<string>input).length) {
    return (<string>input).length
  } else {
    return input.toString().length
  }
}

上一篇下一篇

猜你喜欢

热点阅读