TS: any、void 和 never

any:

用于不确定类型或者是无需确定类型.

function isNumber(value: any) {
    return typeof value === 'number';
}
// 声明一个变量为任意值后,对它的任何操作,返回的内容的类型都是任意值。
  • 优点:
    1. 允许赋值为任意类型
    1. 可以访问任意属性和方法
  • 缺点:
    1. 代码变得难以维护。而就算使用了断言,也丧失了在静态类型检查阶段发现错误的可能性。
  • 注意事项:

    1. 未声明类型的变量一开始被识别为 any 类型,但是经过赋值后,TS 会根据赋值类型来标识变量的类型
let value;

value = 'seven';
const diff1 = value - 1;
// 类型检查错误: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type

value = 7;
cosnt diff2 = value - 1;

Void

表示没有任何类型

  • 没有返回值的函数, 其类型就是 void
  • 声明 void 的只能赋值为 undefined

Never

表示永远不会有值的类型

  • 一个从来不会有返回值的函数(如:如果函数内含有 while(true) {});

  • 一个总是会抛出错误的函数(如:function foo() { throw new Error('Not Implemented') },foo 的返回类型是 never)

  • never 类型仅能被赋值给另外一个 never:

以往
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。