什么是类型兼容?

简介: 什么是类型兼容?

类型的兼容

TypeScript 的类型存在兼容关系,某些类型可以兼容其他类型。

type T = number | string;

let a: number = 1;
let b: T = a;

上面示例中,变量a和b的类型是不一样的,但是变量a赋值给变量b并不会报错。这时,我们就认为,b的类型兼容a的类型。


TypeScript 为这种情况定义了一个专门术语。如果类型A的值可以赋值给类型B,那么类型A就称为类型B的子类型(subtype)。在上例中,类型number就是类型number|string的子类型。

TypeScript 的一个规则是,凡是可以使用父类型的地方,都可以使用子类型,但是反过来不行。

let a: "hi" = "hi";
let b: string = "hello";

b = a; // 正确
a = b; // 报错

上面示例中,hi是string的子类型,string是hi的父类型。所以,变量a可以赋值给变量b,但是反过来就会报错。


之所以有这样的规则,是因为子类型继承了父类型的所有特征,所以可以用在父类型的场合。但是,子类型还可能有一些父类型没有的特征,所以父类型不能用在子类型的场合。


来源:

目录
相关文章
|
前端开发
css div覆盖样式(一个div想覆盖掉另一个div在他上面进行显示)
css div覆盖样式(一个div想覆盖掉另一个div在他上面进行显示)
261 0
|
计算机视觉 Python
Opencv学习笔记(一):如何将得到的图片保存在指定目录以及如何将文件夹里所有图片以数组形式输出
这篇博客介绍了如何使用OpenCV库在Python中将图片保存到指定目录,以及如何将文件夹中的所有图片读取并以数组形式输出。
954 0
Opencv学习笔记(一):如何将得到的图片保存在指定目录以及如何将文件夹里所有图片以数组形式输出
|
C# Windows
WPF技术之图形系列Polygon控件
WPF Polygon是Windows Presentation Foundation (WPF)框架中的一个标记元素,用于绘制多边形形状。它可以通过设置多个点的坐标来定义多边形的形状,可以绘制任意复杂度的多边形。
1294 0
|
11月前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
11月前
|
人工智能 安全 测试技术
《构建鸿蒙Next生态AI应用认证评级体系:守护应用质量新防线》
HarmonyOS NEXT为AI应用发展开辟新天地,建立完善的人工智能应用认证和评级体系至关重要。该体系涵盖功能完整性、性能表现、数据安全、兼容性及伦理道德等标准,确保应用质量。认证流程包括提交申请、技术检测、人工审核与认证决策,保障严谨性。评级机制则通过基础评级、动态评级及用户反馈,持续优化应用评价。此外,加强日常监管、行业协作与技术创新,推动鸿蒙生态健康繁荣发展。
443 11
|
弹性计算 Linux 数据库
阿里云ECS服务器安装宝塔BT面板图文教程
宝塔BT面板支持Linux和Windows系统,本文以阿里云ECS云服务器Linux系统安装宝塔面板为例,云服务器吧分享安装宝塔面板教程: ECS安装宝塔BT面板图文教程开始: SSH登录ECS服务器 使用命令ssh root@你的服务器公网IP登录linux服务器。
19707 0
阿里云ECS服务器安装宝塔BT面板图文教程
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
356 0
|
JavaScript 前端开发 数据安全/隐私保护
vue编写一个登录页面,使用Tab栏实现“账号登录”和“二维码登录”这两种方式的切换
vue编写一个登录页面,使用Tab栏实现“账号登录”和“二维码登录”这两种方式的切换
1401 2
vue编写一个登录页面,使用Tab栏实现“账号登录”和“二维码登录”这两种方式的切换
|
JavaScript 前端开发
【Web 前端】jQuery 库中的 $() 是什么?
【5月更文挑战第1天】【Web 前端】jQuery 库中的 $() 是什么?
|
人工智能 Python Shell
CodeFormer——AI驱动的面部图像修复与增强
CodeFormer是由南洋理工大学和商汤科技联合研发的AI人脸复原模型,结合VQGAN和Transformer技术,能从模糊或马赛克图像中生成清晰图像。它具备老照片修复、黑白照片彩色化、马赛克修复和低码率视频增强等功能。安装过程涉及miniconda3、Python环境配置、相关库的安装及模型训练数据下载。在测试视频增强时,虽然初期遇到ffmpeg导入问题,但通过安装ffmpeg-python得以解决,不过CPU占用率高。此外,还展示了对图片进行增强的命令行操作及结果示例。