天翼云TypeScript知识文档专栏是天翼云为开发者提供的互联网技术内容平台。内容涵盖TypeScript相关内容资讯。开发者在TypeScript专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
TypeScript-基础类型
TypeScript-声明文件
TS 中的模块几乎和ES6 和Node 中的模块一致Node 模块化请查看 NodeJS:06-Node-Node模块07-Node-Node模块导出数据的几种方式08-Node-exports
先不管三七二十一,首先来看一个函数的定义,该函数的内部返回了一个函数的回调,主要作用就是获取一个字符串的长度,可是呢函数的入参是一个联合类型,如下:报错的原因就是说,该函数的入参呢,有可能是 null 和 undefined 如果是 nul
泛型概述在编写代码的时候我们既要考虑代码的健壮性, 又要考虑代码的灵活性 和可重用性通过 TS 的静态检测能让我们编写的代码变得更加健壮, 但是在变得健壮的同时却丢失了灵活性 和可重用性
unknown 类型unknown 类型是TS3.0 中新增的一个顶级类型, 被称作安全的 any任何类型都可以赋值给 unknown 类型:如果没有类型断言或基于控制流的类型细化, 那么不能将 unknown 类型赋值给其
抽象类概述抽象类是专门用于定义那些不希望被外界直接创建的类的抽象类一般用于定义基类抽象类和接口一样用于约束子类首先来看看没有抽象类的实现写法,在TypeScript-类方法修饰符 章节当中我已经编写过了,这里就不在编写了,就直接开始
条件类型(三目运算)判断前面一个类型是否是后面一个类型或者继承于后面一个类型如果是就返回第一个结果, 如果不是就返回第二个结果语法:T extends U ? X : Y;分布式条件类型被检测类型是一个联合类型的时候, 该条件类型就
自动类型推断概述不用明确告诉编译器具体是什么类型, 编译器就知道是什么类型根据初始化值自动推断:如果是先定义在初始化, 那么是无法自动推断的如果是定义的同时初始化, 那么TS 就会自动进行类型推断如上的 let value =
初始化一个自动打包和自动加载最新 JS 代码的 webpack 项目,然后在通过 tsc --init 初始化 TypeScript 配置文件:通过 npm install typescript ts-loader 安装对
参数个数可以将参数少的函数赋值给参数多的函数不可以 将参数多的函数赋值给参数少的函数参数类型可以 将参数类型一样的函数赋值给参数类型一样的函数不可以 将参数类型不一样的函数赋值给参数类型不一样的函数, 必须一模一样返
接口类型概述和 number, string, boolean, enum 这些数据类型一样接口也是一种类型, 也是用来约束使用者的先来看看如果没有使用接口之前的弊端,如我现在有一个需求要求定义一个函数输出一个人完整的姓名, 这个人的姓必须
可选参数假设这个时候我有一个需求: 要求定义一个函数可以实现2 个数或者3 个数的加法这个时候就可以利用可选参数来进行实现实现方式为,在需要进行可选的参数名称后面添加一个? 即可实现可选参数可以配合函数重载
类实现接口只要实现的某一个接口, 那么就必须实现接口中所有的属性和方法错误示例:正确示例:接口继承类定义一个 Person 类如下:只要一个接口继承了某个类, 那么就会继承这个类中所有的属性和方法但是只会继承属性和方法的声明
在经过介绍了 TypeScript-声明文件 之后,本篇文章主要介绍的内容就是声明的安装,其实在编写声明文件的时候又分为好几种,如果你导入的第三方的某个库是一个全局的库的话,那么什么叫全局的库呢,就是这个库当中的所有功能都是绑定到一
映射类型概述根据旧 的类型创建出新 的类型, 我们称之为映射类型假如如下的 TestInterface1 是旧的类型:那么这个时候根据 TestInterface1 创建出来的新的类型就称之为映射类型,例如如下的
类的方法修饰符和属性的修饰符一样,只不过方法的修饰符是没有readonly 的博主假设有这么一个需求: 有一个基类, 所有的子类都需要继承于这个基类, 但是我们不希望别人能够通过基类来创建对象:错误示例:正确示例:
本章节要介绍的内容为 TS 接口当中的可选属性和索引签名,如果要想先了解可选属性和索引签名之前首先要来介绍一下接口的注意点,接口的注意点就是如果你使用了接口类型来限定了函数的入参,限定了某个变量,这个时候你调用函数或者使用变量的时候就必须和
类型别名概述类型别名就是给一个类型起个新名字, 但是它们都代表同一个类型例如: 你的本名叫张三, 你的外号叫小三, 小三就是张三的别名, 张三和小三都表示同一个人如上代码的含义为给 string 类型起了一个别名叫做
TypeScript-defineProperty
2023-06-16 06:09:55
2023-06-16 06:09:36
2023-05-16 09:47:20
2023-04-24 11:30:02
2023-05-17 06:58:04
2023-06-08 06:22:02