当前位置: 首页 > news >正文

【TypeScrip】TypeScrip的任意类型(Any 类型 和 unknown 顶级类型):

文章目录

        • 一、安转依赖:
            • 【1】nodejs 环境执行ts
            • 【2】使用ts-node
        • 二、Any 类型 和 unknown 顶级类型
            • 【1】`没有强制限定哪种类型`,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型
            • 【2】声明变量的时候`没有指定任意类型默认为any`
            • 【3】弊端如果使用any 就`失去了TS类型检测的作用`
            • 【4】TypeScript 3.0中引入的 unknown 类型也被认为是 top type ,但它更安全。与 any 一样,`所有类型都可以分配给unknown`
        • 三、Any 类型 和 unknown 顶级类型的区别:
            • 【1】`unknow类型比any更加严格`,unknown可赋值对象`只有unknown 和 any`
            • 【2】any类型在`对象没有这个属性`的时候还在获取是`不会报错的`,`unknow 是不能调用属性和方法`


一、安转依赖:

【1】nodejs 环境执行ts
npm i @types/node -D (node环境支持的依赖必装)
npm i ts-node --g

在这里插入图片描述

【2】使用ts-node

在这里插入图片描述

二、Any 类型 和 unknown 顶级类型

【1】没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型
let anys:any = 123
anys = '123'
anys = true
【2】声明变量的时候没有指定任意类型默认为any
let anys;
anys = '123'
anys = true
【3】弊端如果使用any 就失去了TS类型检测的作用

在这里插入图片描述

【4】TypeScript 3.0中引入的 unknown 类型也被认为是 top type ,但它更安全。与 any 一样,所有类型都可以分配给unknown

三、Any 类型 和 unknown 顶级类型的区别:

【1】unknow类型比any更加严格,unknown可赋值对象只有unknown 和 any
//unknown 可以定义任何类型的值
let value: unknown;value = true;             // OK
value = 42;               // OK
value = "Hello World";    // OK
value = [];               // OK
value = {};               // OK
value = null;             // OK
value = undefined;        // OK
value = Symbol("type");   // OK//这样写会报错unknow类型不能作为子类型只能作为父类型 any可以作为父类型和子类型
//unknown类型不能赋值给其他类型
let names:unknown = '123'
let names2:string = names//这样就没问题 any类型是可以的
let names:any = '123'
let names2:string = names   //unknown可赋值对象只有unknown 和 any
let bbb:unknown = '123'
let aaa:any= '456'aaa = bbb
【2】any类型在对象没有这个属性的时候还在获取是不会报错的unknow 是不能调用属性和方法
如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj:any = {b:1}
obj.a如果是unknow 是不能调用属性和方法
let obj:unknown = {b:1,ccc:():number=>213}
obj.b
obj.ccc()
http://www.lryc.cn/news/11386.html

相关文章:

  • 智能洗地机什么牌子好?智能洗地机排行
  • 【数据结构与算法】链表1:移除链表 设计链表链表反转(双指针法、递归法)
  • 山东大学软件学院面向对象简答题整理【个人向】
  • JAVA时间类及JAVA8新时间类
  • ASEMI代理FGH60N60SFD,安森美FGH60N60SFD原装IGBT
  • 【云原生之Docker实战】使用dokcer部署web端vscode
  • Docker安装Tomcat、mysql、redis
  • 【python 基础篇 八】python的常用数据类型操作-------集合
  • Spring框架中问题补充
  • 【Leedcode】顺序表必备的三道面试题(附图解)
  • SOFA Weekly|开源人、本周贡献 issue 精选
  • 2023美赛 ICM E题详细版思路
  • 【LeetCode】剑指 Offer(3)
  • springboot simple (13) springboot Elasticsearch(Elasticsearch8.5.1)
  • 《爆肝整理》保姆级系列教程python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
  • 分享111个HTML旅游交通模板,总有一款适合您
  • guava中ImmutableList使用示例详解
  • ASE28N50-ASEMI高压N沟道MOS管ASE28N50
  • MyBatis缓存
  • Linux环境下(CentOS 7)安装Java(JDK8)
  • 基于STM32L431+Liteos的串口空闲中断加DMA循环接收
  • BZOJ4403 序列统计
  • 如何正确使用 钳位二极管
  • 【C语言进阶】动态内存管理
  • 第一批因ChatGPT坐牢的人,已经上路了
  • Eclipse下Maven的集成
  • Elasticsearch7学习笔记(尚硅谷)
  • 前端学习第一阶段-第7章 品优购电商项目
  • cocos2dx 4.0 - cpp - pc版 环境搭建
  • 剑指 Offer 53 - I. 在排序数组中查找数字 I