TypeScript 常用类型语法 any unknown never void

1、any

any的值可以是任意类型,any的值可以赋值给任意类型,any值使用任意属性和方法不会报错

// any 的值可以是任意类型,any的值可以赋值给任意类型,any的值的任意属性方法不会报错
let a:any
// 1.any的值可以是任意类型
a = 10
a = "abc"
a = true
let b:string
// 2、any的值可以赋值给任意类型
b = a
console.log(b, typeof b);
// 3、any的值的任意属性方法不会报错
a = "bbbb"
console.log(a.toUpperCase());

2、unknown

unknown的值可以是任意类型,unknown的值不能赋值给任意类型(加断言),unknown的值使用任意的方法和属性报错(加断言)

// unknown的值可以是任意类型,unkonown的值不能赋值给任意类型(要加断言),unknown的值不能使用任意的方法和属性(加断言)
let x:unknown
// 1、unknown的值可以是任意类型
x = "bbm"
x = false
x = 10
// 2、unknown的值不能赋值给任意类型,会报错,需要加断言
let y:string
y = <string>x
console.log(y, typeof y);
// unkonwon的值不能使用任意的方法和属性会报错,需要加上断言
x = "ddddd"
console.log((<string>x).toUpperCase());

断言

对变量a进行断言,<类型>a 或者 a as 类型

let a:unknown
a = "房贷好累"
let b:string
// 断言的两种方法
b = a as string
// b = <string>a

 

3、never

never的值不能是任何类型(无意义),一般由TypeSript推断,限制函数返回值(抛出异常)

// never的值不能是任意数据类型(一般不用,没有任何意义),由TypeScript主动推断, 限制函数返回值包括 undefine和null
let a:never
// 1、never 的值不能是任意类型,无意义
// a = 10  报错
// a = "hello" 报错
// a = true 报错
// 2.never一般由TypeScript推断
let b:string
b = "ddddddddd"
if(typeof b == "string"){
    console.log(b.toUpperCase());
}else{
    console.log(b);
}
// 限制函数返回值,包括undefine和null,用于异常抛出
function test(x:string):never{
    throw new Error(x)
}
console.log(test("abc"));

4、void

void的函数返回值类型为undefine,调用者不应依赖void函数返回值做任何操作

// void函数返回值为undefine,函数调用者不应该依赖函数的返回值做任何操作
function fun(s:string):void{
    console.log(s);
}
let res = fun("Hello")
if (res) { //飘红
    console.log("xxxx");
    
}

 

posted @ 2025-03-19 12:40  市丸银  阅读(19)  评论(0)    收藏  举报