来学习typescript 吧! --2基础类型(any、unknown )

news/2024/12/4 10:28:48/文章来源:https://www.cnblogs.com/zhuangdd/p/18585769

一、nodejs 环境执行ts

1、安装类型定义包 (只在开发和测试阶段被使用,而在生产环境中不会被包含)

npm i @types/node --save-dev

 

2、安装 TypeScript 执行器 -- 允许你直接运行 TypeScript 文件

npm i ts-node --g

 

二、any类型 -- top type

1.没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型

let anyType: any = 1;
anyType = "string";
anyType = true;
anyType = [1, 2, 3];
anyType = { name: "2any" };
anyType = () => { };
anyType = null;
anyType = undefined;
anyType = Symbol("2any");
anyType = {};
anyType = () => { };
anyType = 123;

 

2.声明变量的时候没有指定任意类型默认为any

let anyType2; // 等价于 let anyType2: any;

anyType2 = 1;

anyType2 = "string";

 

3.弊端如果使用any 就失去了TS类型检测的作用

 

三、unknown类型 -- top type

1.与any类型一样,都可以接收任意类型,但是unknown类型更加安全,不能对unknown类型的变量进行任何操

let value: unknown;
value = 1;
value = "string";
value = true;
value = [1, 2, 3];
value = { name: "2any" };
// ...

 

2.只能赋值给unknown类型和any类型

let bbb:unknown = '123'
let aaa:any= '456'
aaa = bbb


//报错
let names:unknown = '123'
let names2:string = names

区别1:
//any可以随意赋值
let names:any = '123'
let names2:string = names  

 

 

区别2:

unknown类型不能调用属性和方法,any类型可以调用属性和方法

 

let names: unknown = '123'
names.length // 报错

let names2: any = '123'
names2.length // 没问题
names2.toString() // 没问题
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846564.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vxe-table 一键切换编辑模式、只读模式

vxe-table 可以编辑模式和只读模式的参数是 editConfig.enabled 当需要编辑时就启用,当不需要编辑时就关闭 官网:https://vxetable.cn/<template><div><vxe-button status="primary" @click="toggleReadonly">切换</vxe-button>…

RK3566 RK3568开发板Android11屏蔽开机启动提示,优化启动时间

触觉智能RK3568开发板Android11屏蔽开机启动提示,优化启动时间!通用瑞芯微RK3566 RK3568等主板在Android11系统下开机启动会出现下图“平板电脑正在启动”字样,屏蔽可优化开机启动时间,本文教大家如何通过修改代码屏蔽开机提示。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞…

jQuery实现类似视频播放功能的图片播放器插件

jquery Image Player是一款可以像视频播放一样逐张播放图片的图片播放器JQUERY插件。当你需要介绍你的某个产品和项目的时候,这个插件就可以发挥它的强大作用。你可以将产品或项目的各个功能做成图片,然后使用该插件来逐帧播放。 现在大多数的产品和项目介绍使用的都是gif图片…

Nexpose 7.0.0 for Linux Windows - 漏洞扫描

Nexpose 7.0.0 for Linux & Windows - 漏洞扫描Nexpose 7.0.0 for Linux & Windows - 漏洞扫描 Rapid7 on-prem Vulnerability Management, released Dec 03, 2024 请访问原文链接:https://sysin.org/blog/nexpose-7/ 查看最新版。原创作品,转载请保留出处。 作者主页…

采集倍福PLC 转 profinet IO项目案例

VFBOX协议转换网关支持PLC,modbus,EthernetIP,Profinet,CCLink,EtherCAT,IEC61850,IEC104,bacnet,DLT645,HJ212,opc ua,opc da,DNP3。目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 设置倍福PLC 2 5 配置网关参数采集倍福PLC数据 4 6 用PROFINET IO协议…

为什么越来越多团队选择看板进行任务管理?

在当前快节奏、高效率的工作环境中,传统的任务管理方式往往显得冗长且低效。项目进度跟踪、任务分配、团队协作等方面的需求日益增加,传统的管理方式未必能满足团队对信息透明度和进度跟踪的高要求。此时,看板视图作为一种行之有效的解决方案,逐渐在团队管理中崭露头角。它…

iPhone 17系列将迎来八项重大变革和创新

根据外媒 MacRumors 的报道,2025年即将发布的 iPhone 17 系列或将带来多达八项重大创新,这些变化可能显著提升用户体验并重新定义智能手机的设计与性能。以下是这些预计变化的详细分析: 八大变革解析1. 材质革新:首次采用铝制外壳特点:iPhone 17 Pro 系列将告别钛金属材质…

任务系统之任务流程可视化

在运维自动化平台中,任务系统无疑是最核心的组成部分之一。它承担着所有打包编译、项目上线、日常维护等运维任务的执行。通过任务系统,我们能够灵活地构建满足不同需求的自定义任务流。早期的任务流后端采用了类似列表的存储结构,根据任务流内子任务的排序依次执行,尽管通…

浅谈APS排程模型为何需要将企业业务融入系统

制造业的排产工作是个具有难度的复杂工作,计划员经常面临的是数千种原材料、数百道工序、数十条生产线,还要考虑设备维护、工人排班、交期承诺等众多因素。在过去,人工使用excel或者辅助排产工具排产绰绰有余。然而,当下人工排产已经无法应对多订单的非标定制趋势,APS自动…

博科 FC 交换机 Firmware微码版本升级

一. 搭建ftp服务 windows系统直接安装 FileZilla Server配置一下即可; 下载链接:https://filezilla-project.org/download.php?type=server 配置ftp教程链接: https://segmentfault.com/a/1190000021823644 大致步骤: 1.安装软件 2.安装完成后会自动打开Filezilla Server …

请使用css3实现图片的平滑转换

可以使用 CSS3 的 transition 属性来实现图片的平滑过渡效果。以下是一些常见的应用场景和示例代码: 1. 鼠标悬停时放大图片: <img src="image.jpg" alt="My Image">img {width: 200px;height: 150px;transition: transform 0.3s ease; /* 定义过渡…

Linux内存布局

目录在linux中,每一个进程都被抽象为task_struct结构体,称为进程描述符,存储着进程各方面的信息;例如打开的文件,信号以及内存等等;然后task_struct的一个属性mm_struct管理着进程的所有虚拟内存,称为内存描述符。在mm_struct结构体中,存储着进程各个内存段的开始以及结…