【TS】any的问题及与unknown的区别

any的使用场景

一旦设置为any,类型检查系统会认为这个值不需要检查,一般用于

1.出于特殊原因,需要关闭某些值的类型检查

2.为了适配老旧的js项目,快速迁移到ts,可以把代码设置为any,因为对于老旧js项目很难做到给每个值都加上类型定义

any带来的问题

js 复制代码
let a:any = 'string'
let b:number = a //可以赋值不会报错

b.toFixed()  // 报错

由于any类型可以赋值给任何类型,所以会污染其他变量,像以上案例,运行时才会爆出错误

unknown

和any类型类似,如果设置为unknown,可以赋值任何值,和any区别:

1.unknown类型的变量,只能赋值给any和unknown类型的变量,赋值给其他类型报错

js 复制代码
let a:unknown = 'string'

let b:number = a //报错
let c:any = a // 不报错

2.unknown类型的变量不能直接使用变量上的方法和属性

js 复制代码
let a:unknown = 'string'
a.trim() // 报错
//如果想不报错,可以这么写
if(typeof a === 'string') {
    a.trim() // 不会报错
}
相关推荐
前端布鲁伊5 小时前
零代码上线一个图片处理网站,我是如何使唤AI干活的?
前端·ai编程
庄小焱5 小时前
React——React基础语法(2)
前端·javascript·react.js
终端鹿5 小时前
Vue3 核心 API 深度解析:ref / reactive / computed / watch
前端·javascript·vue.js
console.log('npc')5 小时前
partial在react接口定义中是什么意思
前端·javascript·typescript
SuperEugene5 小时前
前端 utils 工具函数规范:拆分 / 命名 / 复用全指南,避开全局污染等高频坑|编码语法规范篇
开发语言·前端·javascript
C澒5 小时前
微前端容器标准化 —— 公共能力篇:通用请求
前端·架构
llxxyy卢6 小时前
web部分中等题目
android·前端
若惜6 小时前
selenium自动化测试web自动化测试 框架封装Pom
前端·python·selenium
Amumu121386 小时前
Js:内置对象
开发语言·前端·javascript
广州华水科技6 小时前
2026年单北斗GNSS变形监测系统推荐,助力精准监控与智慧城市建设
前端