入坑 TS(一)

news2025/1/14 1:10:01

1、TS 采用类型后置的语法

const str: string = "我是字符串";
const num: number = "我是数值";
const bool: boolean = false;

函数怎么写?

// 有返回值
function sayHello(str: string): string {
	return str;
}
// 无返回值
function sayHello(str: string): void {
	console.log(str);
}
// 把函数赋值给一个变量
const sayHelloFn: Function = sayHello; //这样写没什么问题,但是会丢失原函数的定义
const sayHelloFn: (str: string): string = sayHello; //正确的写法,这样写会把原定义保留,类型里边的参数名并不必和实际的参数名一样,注意我这里故意写成了 strs 而不是 str。

哪些地方需要加类型

anyway

基础类型

原始类型

  • string 字符
  • number 数值
  • boolean 布尔

这些类型不是大写开头的,原因很简单,大写开头的被 ES 用掉了,而且大写开头的(比如 String)虽然也可以做类型用,但严格意义来说它只是对应原始类型的包裹对象。

在 JS 世界里,空字符串 ‘’ 和 new String(‘’) 是很不一样的概念。

字面量的字符串可以赋给以包裹器为类型的变量,但包裹器对象却无法赋给原始类型的变量。

在这里插入图片描述

any

可以匹配任意类型。(但不推荐使用)

  • 新写代码没有绝对的理由,则不要用 any。
  • 转化 JS 代码,想用 any 来绕过编译错误之前,请一定三思,并尽可能花点时间找到最适合的类型;
  • 实在没有办法,这一定给 any 加上注释。

unknown

3.0 版本引入,和 any 对等,任何类型都可以赋给 unknown,但 unknown 只能赋给 unknown 或 any。

通常用于做类型转换的中间类型。

在这里插入图片描述

void

有点类似 any 的反义词。它可以作为方法的返回值(即无返回)。

function func(str: string): void {};

void 也可以作为变量的类型,但作为变量的类型是没有意义的,因为除了 null 和 undefined 之外,如果设置了 strictNullChecks: true 的话(默认开启),你只能设置 undefined。

never

表示某个方法会 throw 抛错。

function willThrow(message: string): never {
  throw new Error(message);
}

never 类型的数据可以塞给任意类型的变量,反之则不行

在这里插入图片描述

null / undefined

这两个既可以做「值」,也可以做类型,基本上不会单独使用,一般会和其他类型合在一起用。

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

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

相关文章

Java throws关键字

Java的throws关键字用于声明异常。它向程序员提供了可能发生异常的信息。 因此,最好为程序员提供异常处理代码,以便保持程序的正常流程。 异常处理主要用于处理已检查异常。如果出现任何未检查的异常,例如NullPointerException,则…

jjy-shareV2.0一键分享到微博,QQ空间,QQ好友,微信

介绍 jjy-shareV2.0一键分享到微博,QQ空间,QQ好友,微信 作者:极纪元-橙 作者博客:https://cplvfx.blog.csdn.net/ 码云Gitee:橙cplvfx极纪元 (cplvfx) - Gitee.com 项目地址:jjy-shareV2.…

登录认证(全集)--jwt,Filter,Interceptor详细说明

一、登录校验 问题:在未登录情况下,我们也可以直接访问部门管理、员工管理等功能。由于浏览器与web服务器中的数据交互是通过HTTP协议的,而HTTP协议是无状态的–即每个页面中的请求和响应都是独立的,没有状态存在。所以我们需要进…

WordPress网站的robots文件代码怎样写比较好

本文记载和介绍的是wordpress的robots.txt的在哪儿?以及如何修改robots文件来禁止搜索引擎爬取/ajax目录下的文章。以及如何优化WordPress网站的robots文件 wordpress设置robots文件的目录:/wp-includes/functions.php,然后搜索do_robotstxt…

【雕爷学编程】Arduino动手做(123)---Multi-function扩展板

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

随机数检测(一)

随机数检测(一)- 随机数自测试概述 1 概述2 产品形态划分和检测项目3 测试方式3.1 概述3.2 单比特频数检测方法3.3块内频数检测方法 1 概述 随机数发生器设计完成后,使用随机数发生器的产品需对其执行测试,防止应用过程中产生不合…

Redis的数据类型及对应的数据结构(二)

接上篇:Redis的数据类型及对应的数据结构(一)_鱼跃鹰飞的博客-CSDN博客 本篇主要讨论剩下的几种数据结构的应用场景 应用场景 集合的主要几个特性,无序、不可重复、支持并交差等操作。 因此 Set 类型比较适合用来数据去重和保…

卧剿,6万字!30个方向130篇!CVPR 2023 最全 AIGC 论文!一口气读完。

一杯奶茶,成为 AIGCCV 视觉前沿弄潮儿! 25个方向!CVPR 2022 GAN论文汇总 35个方向!ICCV 2021 最全GAN论文汇总 超110篇!CVPR 2021 最全GAN论文梳理 超100篇!CVPR 2020 最全GAN论文梳理 在最新的视觉顶会 C…

Java多重捕获块

try块后面可以跟随一个或多个catch块。每个catch块必须包含一个不同的异常处理程序。因此,如果您在不同的异常发生时需要执行不同的任务,请使用Java多重捕获块。 需要记住的要点 一次只会发生一个异常,同时只有一个catch块被执行。 所有的ca…

实训五:数据库安全控制 - MySQL数据库 - 授权与撤销授权

MySQL数据库 - 授权与撤销授权 第1关:数据库授权任务描述相关知识用户管理授权方式 编程要求测试说明参考代码 第2关:数据库撤销权限任务描述相关知识撤销权限 编程要求测试说明参考代码 第1关:数据库授权 任务描述 本关任务:新…

Ubuntu安装Anaconda详细步骤(Ubuntu22.04.1,Anaconda3-2023.03)

本文主要讲述了在Ubuntu中安装anaconda的具体步骤 准备环境:Ubuntu22.04.1,Anaconda3 1.下载Anaconda3 在清华镜像下载Linux版本的anaconda 清华镜像官网Anaconda下载 我选择的是Anaconda3-2023.03-Linux-x86_64.sh 下载好的Anaconda3-2023.03-Linux-…

拦截器Interceptor及与过滤器Filter的区别

统一拦截–拦截器Interceptor 1.概述 概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行。作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码。与过滤器Fil…

【Java|多线程与高并发】设计模式-单例模式(饿汉式,懒汉式和静态内部类)

文章目录 1. 前言2. 单例模式3. 如何保证一个类只有一个实例4. 饿汉式单例模式5. 懒汉式单例模式6. 实现线程安全的懒汉式单例7. 静态内部类实现单例模式8. 总结 1. 前言 设计模式是一种在软件开发中常用的解决复杂问题的方法论。它提供了一套经过验证的解决方案,用…

通信原理概述

通信是指人们通过某种媒介进行信息传递。通过某种介质或通道,将信息从一个地点传递到另一个地点的过程。通信可以是人与人之间的交流,也可以是设备、系统或网络之间的数据传输。 通信信号的分类方法: 1)模拟信号和数字信号(从信号…

数字游戏:如何统计能整除数字的位数?

本篇博客会讲解力扣“2520. 统计能整除数字的位数”的解题思路,这是题目链接。 本题的思路是:取出每一位,判断是否能整除。 如何取出每一位呢?可以采用“mod10除10”的策略。即:每次mod10取出最后一位数,再…

2022年软件测试面试题大全【含答案】

一、面试基础题 简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(…

C++面向对象 this指针 构造函数 析构函数 拷贝构造 友元

C面向对象 面向对象概念类与对象的区别 C中类的设计设计实例实例解释共有和私有类的认识 函数定义函数在类里定义和类外定义区别函数定义实例 C对象模型方案一:各对象完全独立地安排内存的方案方案二:各对象的代码区共用的方案: this指针this指针特点程序编译面向对象程序的过程…

【力扣刷题 | 第十四天】

目录 前言: 7. 整数反转 - 力扣(LeetCode) 面试题 16.05. 阶乘尾数 - 力扣(LeetCode) 总结; 前言: 今天仍然是无固定类型刷题, 7. 整数反转 - 力扣(LeetCode) 给你…

傅氏变换算法

半局积分算法的局限性是要求采样的波形为正弦波。当被采样的模拟量不是正弦波而是一个周期性时间函数时,可采用傅氏变换算法。傅氏变换算法来自于傅里叶级数,即一个周期性函数I(t)可用傅里叶级数展开为各次谐波的正弦项和余弦项之…

D117-72. 编辑距离

题目描述 链接:添加链接描述 跟只考虑删除的完全一样,只不过是dp[i-1][j-1]1 class Solution:def minDistance(self, word1: str, word2: str) -> int:# dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2&…