【零基础入门TypeScript】Union

目录

语法:Union文字

示例:Union类型变量

示例:Union 类型和函数参数

Union类型和数组

示例:Union类型和数组



TypeScript 1.4 使程序能够组合一种或两种类型。Union类型是表达可以是多种类型之一的值的强大方法。使用管道符号 (|) 组合两个或多个数据类型以表示Union类型。换句话说,Union类型被写为由竖线分隔的类型序列。

语法:Union文字

Type1|Type2|Type3 

示例:Union类型变量

var val:string|number val = 12
console.log("numeric value of val "+val)
val = "This is a string"
console.log("string value of val "+val)

在上面的示例中,变量的类型是 union。这意味着变量可以包含数字或字符串作为其值。

编译时,它将生成以下 JavaScript 代码。

//Generated by typescript 1.8.10
var val; val = 12;
console.log("numeric value of val " + val);
val = "This is a string";
console.log("string value of val " + val);

其输出如下 -

numeric value of val  12 
string value of val this is a string 

示例:Union 类型和函数参数

function disp(name:string|string[]) { if(typeof name == "string") { console.log(name) } else { var i; for(i = 0;i<name.length;i++) { console.log(name[i])} } 
} 
disp("mark") 
console.log("Printing names array....") 
disp(["Mark","Tom","Mary","John"])

函数 disp() 可以接受字符串类型或字符串数​​组类型的参数。

编译时,它将生成以下 JavaScript 代码。

//Generated by typescript 1.8.10
function disp(name) {if (typeof name == "string") {console.log(name);} else {var i;for (i = 0; i < name.length; i++) {console.log(name[i]);}}
}disp("mark");
console.log("Printing names array....");
disp(["Mark", "Tom", "Mary", "John"]);

输出如下 -

Mark 
Printing names array…. 
Mark 
Tom
Mary
John 

Union类型和数组

Union类型还可以应用于数组、属性和接口。下面说明了Union类型与数组的使用。

示例:Union类型和数组


var arr:number[]|string[]; 
var i:number; 
arr = [1,2,4] 
console.log("**numeric array**")  for(i = 0;i<arr.length;i++) { console.log(arr[i]) 
}  arr = ["Mumbai","Pune","Delhi"] 
console.log("**string array**")  for(i = 0;i<arr.length;i++) { console.log(arr[i]) 
} 

该程序声明了一个数组。该数组可以表示数字集合或字符串集合。

编译时,它将生成以下 JavaScript 代码。


//Generated by typescript 1.8.10
var arr;
var i;
arr = [1, 2, 4];
console.log("**numeric array**");for (i = 0; i < arr.length; i++) {console.log(arr[i]);
}
arr = ["Mumbai", "Pune", "Delhi"];
console.log("**string array**");for (i = 0; i < arr.length; i++) {console.log(arr[i]);
}

其输出如下 -

**numeric array** 
1 
2 
4 
**string array** 
Mumbai 
Pune 
Delhi

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

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

相关文章

在java中一般什么时候用==

在Java中&#xff0c;使用 运算符用于比较两个对象的引用是否相同。下面是一些通常使用 的情况&#xff1a; 比较基本数据类型&#xff1a; 当比较两个基本数据类型&#xff08;如 int、char、boolean 等&#xff09;时&#xff0c;可以使用 运算符进行比较。它会直接比较两…

高仿原神官网UI 纯html源码

高仿原神官网UI源码介绍 如果您希望打造一个与原神官方网站相似的外观和用户体验&#xff0c;但又不想使用复杂的框架或模板&#xff0c;那么我们的高仿原神官网UI源码将是一个完美的选择。它采用纯HTML5构建&#xff0c;无需任何额外的CSS或JavaScript库支持&#xff0c;即可…

【Java万花筒】数据魔术师:探索Java商业智能与数据可视化

开发者的数据魔杖&#xff1a;掌握Java商业智能工具的秘诀 前言 在当今信息爆炸的时代&#xff0c;数据已经成为企业决策和业务发展的重要驱动力。为了更好地理解和利用数据&#xff0c;商业智能&#xff08;BI&#xff09;和数据可视化工具变得至关重要。本文将介绍几种基于…

代码随想录算法训练营第四十六天(动态规划篇)|01背包(滚动数组方法)

01背包&#xff08;滚动数组方法&#xff09; 学习资料&#xff1a;代码随想录 (programmercarl.com) 题目链接&#xff08;和上次一样&#xff09;&#xff1a;题目页面 (kamacoder.com) 思路 使用一维滚动数组代替二维数组。二维数组的解法记录在&#xff1a;代码随想录算…

人工智能深度学习如何入门?

人工智能&#xff08;AI&#xff09;和深度学习是当今技术领域最热门的话题之一。如果你想要入门深度学习&#xff0c;以下是一些建议和步骤&#xff0c;可以帮助你开始这段旅程&#xff1a; 1. 建立数学基础 深度学习依赖于数学&#xff0c;特别是线性代数、概率论、统计学和…

2024/2最新升级ChatGPT Plus的方法

2024年2月最新升级方法&#xff1a;ChatGPT Plus全方位体验指南 随着2024年2月的到来&#xff0c;ChatGPT Plus迎来了全新的升级。对于追求更高效率和更强大功能的用户来说&#xff0c;升级至ChatGPT Plus无疑是提升工作和学习体验的关键。在本指南中&#xff0c;我将一步一步…

C#,十进制展开数(Decimal Expansion Number)的算法与源代码

1 十进制展开数 十进制展开数&#xff08;Decimal Expansion Number&#xff09;的计算公式&#xff1a; DEN n^3 - n - 1 The decimal expansion of a number is its representation in base -10 (i.e., in the decimal system). In this system, each "decimal place…

Zabbix 配置实时开通的LDAP认证-基于AD

介绍 本教程适用于6.4-7.0版本的Zabbix&#xff0c;域控&#xff08;AD&#xff09;使用Windows Server 2022搭建&#xff0c;域控等级为 2016。 域控域名为 songxwn.com 最终实现AD用户统一认证&#xff0c;统一改密&#xff0c;Zabbix用户自动添加。&#xff08;6.4之前不…

使用npm包js-web-screen-shot做网页截图,可以对截图加文字,箭头等等,类似于微信截图

<template><div class"m-feedback-wrap" :style"{ top: ${feedbackHeight}px }"><div class"m-feedback-icon-wrap"><el-tooltipclass"item"effect"dark"content"内容"placement"left-…

服务运营 | 摘要:POMS 1月医疗文章合集

编者按 这一系列文章旨在给读者提供运筹学在医疗应用领域的概览。本文整理了Production and Operations Management在2024年1月刊中发布的医疗相关文章合集。 1.顾客订货行为对医疗产品分发效率的影响 文章名&#xff1a; How much do customer ordering practices drive med…

# 流量回放工具之 Goreplay 安装及初级使用

流量回放工具之 Goreplay 安装及初级使用 文章目录 流量回放工具之 Goreplay 安装及初级使用GoReplay使用场景环境搭建Golang环境安装Goreplay 安装 Windows 下使用基本使用其它使用注意点 GoReplay GoReplay是一个开源工具&#xff0c;用于捕获和重放实时HTTP流量到测试环境中…

代码随想录算法训练营第24天(回溯2)| 216.组合总和III 17.电话号码的字母组合

回溯的总结&#xff1a; 树的深度&#xff08;递归的层数&#xff09; 树的深度就是要取的数据的个数&#xff0c;通过path的size判断是否收集到足够的数据 树的宽度&#xff08;循环的范围&#xff09; 输的宽度就是搜索的范围&#xff0c;就是for循环的循环范围&#xff0c;…

Java学习网络编程

Java学习网络编程 大纲 网络相关概念IP地址网络协议InetAdressSocket 具体案例 1. 网络相关概念 网络 网络通信 2. IP地址 域名 3.网络协议 4. InetAdress 获得本机的名字和IP public static void main(String[] args) throws UnknownHostException {InetAddress inetA…

SpringBoot中全局异常处理

一、全局异常处理 SpringBoot给我们提供了ControllerAdvice和 ExceptionHandler注解 注解的作用&#xff1a; ControllerAdvice用来开启全局的异常捕获&#xff0c; ExceptionHandler用来说明捕获哪些异常&#xff0c;并对这些捕获的异常进行处理。 二、具体代码样例 Res…

前端学习之路(6) npm详解

npm 是什么&#xff1f; npm&#xff08;node package manager&#xff09;&#xff1a;node.js 的包管理器&#xff0c;用于node插件管理&#xff08;包括安装、卸载、管理依赖等&#xff09; &#xff0c;npm 是随同 node.js 一起安装的包管理工具&#xff0c;能解决 node.j…

《剑指 Offer》专项突破版 - 面试题 36 : 详解后缀表达式(C++ 实现)

题目链接&#xff1a;LCR 036. 逆波兰表达式求值 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 后缀表达式是一种算术表达式&#xff0c;它的操作符在操作数的后面。输入一个用字符串数组表示的后缀表达式&#xff0c;请输出该后缀表达式的计算结果。假设输入的…

MySQL基础查询篇(7)-常用的字符串函数

MySQL数据库是目前广泛应用于各种系统中的一种关系型数据库管理系统。在MySQL中&#xff0c;有许多常见的字符串函数&#xff0c;可以对字符串进行各种处理和操作。本文将介绍MySQL数据库中常用的一些字符串函数&#xff0c;并提供详细示例。 CONCAT函数&#xff1a;用于将两个…

小项目:蓝牙模块点亮RGB三色灯

在之前的教程中&#xff0c;我们学习了蓝牙模块的原理&#xff0c;并动手写了驱动&#xff0c;实现了串口的接收和发送。本次我们就来教大家如何使用蓝牙串口控制灯。这是一个简单的示例&#xff0c;展示了如何将蓝牙通信与硬件控制相结合&#xff0c;实现远程控制的功能。你也…

vue3+vite+ts 配置commit强制码提交规范配置 commitlint

配置 git 提交时的 commit 信息&#xff0c;统一提交 git 提交规范 安装命令: npm install -g commitizen npm i cz-customizable npm i commitlint/config-conventional commitlint/cli -D 文件配置 根路径创建文件 commitlint.config.js module.exports {// 继承的规…

tsgctf-2021-lkgit-无锁竞争-userfaultfd

启动脚本 qemu-system-x86_64 \-kernel ./bzImage \-initrd ./rootfs.cpio \-nographic \-monitor /dev/null \-cpu kvm64,smep,smap \-append "consolettyS0 kaslr oopspanic panic1 quiet" \-no-reboot \-m 256M题目 lkgit_hash_object #define HASH_SIZE …