![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TypeScript
__zRainy__
愚者,笃行。
展开
-
TypeScript进阶篇 --- 声明合并
声明合并如果定义了两个相同名字的函数、接口或类,那么他们会合并成一个类型:函数的合并我们可以使用重载定义多个函数类型: function reverse(x: number): number; function reverse(x: string): string; function reverse(x: number | string): number | string { if (typeof x === 'number') { re原创 2020-11-16 23:09:14 · 692 阅读 · 0 评论 -
TypeScript进阶篇 --- 泛型
泛型泛型(Generics)是指在定义函数,接口或类的时候,不预先指定具体的类型,而在使用的时候,再指定类型的一种特性。简单的例子首先,我们来实现一个createArray,它可以创建一个指定长度的数据,同时将每一项都填充一个默认值: function createArray(length: number, value: any): Array<any> { let result = []; for (let i = 0; i < length原创 2020-11-16 23:08:16 · 509 阅读 · 0 评论 -
TypeScript进阶篇 --- 类与接口
类与接口接口(Interfaces)可以用于对于[对象的形状]进行描述。这一章介绍接口的另一个用途,对类的一部分行为进行抽象。类实现接口实现(implements)是面向对象中的一个重要概念。一般来讲,一个类智能继承自另一个类,有时间不同类之间可以有一些共有的特性,这时候就可以吧特性提取成接口(interface),用implements关键字来实现。这个特性大大的提高了面向对象的灵活性。举例来说,门是一个类,防盗门是门的子类。如果防盗门有一个报警器的功能,我们可以简单的给防盗门添加一个报警党发,原创 2020-10-30 19:57:34 · 141 阅读 · 0 评论 -
TypeScript进阶篇 --- 类
类传统方法中,JavaScript通过构造函数实现类的概念,通过原型链实现集成。而在ES6中,我们终于迎来了class。TypeScript 除了实现了所有ES6的类的功能以外,还添加了一些新的用法。类的概念虽然 JavaScript中有类的概念,但是可能大多数 JavaScript程序员并不是非常熟悉类,这里对类相关的概念做一个简单的介绍。类(Class):定义了一件事物的抽象特点,包含它的属性和方法对象(Object):类的实例,通过new生成面向对象(OPP)的三大特性:封装、继承、多原创 2020-10-30 19:55:06 · 419 阅读 · 0 评论 -
TypeScript进阶篇 --- 枚举
枚举枚举(Enum)类型用来取值被限定在一定范围内的场景,比如一周只能偶七天,颜色限定为红绿蓝等。简单的例子枚举使用enum关键字来定义: enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; console.log(Days["Sun"] === 0); // true console.log(Days["Mon"] === 1); // true console.log(Days["Tue"] === 2); // tru原创 2020-10-30 19:52:22 · 659 阅读 · 0 评论 -
TypeScript进阶篇 --- 元组
元组数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象。元组起源于函数编程语言(如F#),这些语言中会频繁使用元组。简单的例子定义一对值分别为string和number的元组: let tom:[string,number] = ['tom',25]当赋值或者访问一个一直索引的元素时,会得到正确的类型: let tom:[string,number]; tom[0]='1'; tom[1]=24; // tom[3]=1;// 长度为 "2原创 2020-10-17 12:29:49 · 1070 阅读 · 0 评论 -
TypeScript进阶篇 --- 类型别名&&字符串字面量类型
类型别名类型别名用来给一个类型起个新名称。简单的例子 type Name = string ; type NameResolver = () => string; type NameOrNameResolver = Name | NameResolver ; function getName(n:NameOrNameResolver):Name{ if(typeof n == 'string'){ return n原创 2020-10-15 22:45:27 · 649 阅读 · 0 评论 -
TypeScript基础篇 --- 内置对象
内置对象JavaScript中有很多内置对象,他们可以直接在 TypeScript中当做定义好了的类型。内置对象是指根据标准在全局作用域(Global)上存在的对象。这里的标准是指ECMAScript和其他环节(比如DOM)的标准。ECMAScript的内置对象ECMAScript标准提供的内置对象有:Boolean、Error、Date、RegExp等。我们可以是 TypeScript中将变量定义为这些类型: let b:Boolean = new Boolean(1); le原创 2020-10-14 22:55:15 · 500 阅读 · 0 评论 -
TypeScript基础篇 --- 声明文件
当使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能。新语法索引declare var 声明全局变量declare function 申明全局函数declare class 声明全局类declare enum 声明全局枚举类型declare namespace 声明(含有子属性的)全局对象interface和type 声明全局类型export 导出变量export namespace 导出(含有子属性的)对象export default ES5默认导出e原创 2020-10-13 22:58:22 · 4053 阅读 · 2 评论 -
TypeScript基础篇 --- 类型断言
类型断言类型断言(TyPe Assertion)可以用来手动只顶一个值的类型。语法 值 as 类型或 <类型>值在 tsx语法(react的jsx语法的ts版)中必须使用前者,即值 as 类型。形如<Foo>的语法在tsx中表示一个ReactNode,在ts中除了表示类型断言外,也可能表示一个泛型。故建议使用类型断言的时候,统一使用值 as 类型这样的语法。类型断言的用途将一个联合类型断言为其中一个类型之前有提到过,当 TypeScript不确定原创 2020-10-12 20:29:44 · 1933 阅读 · 0 评论 -
TypeScript基础篇 --- 函数的类型
函数的类型函數申明在 JavaScript中,有两种常见的什么方式————函数声明(Function Declarartion)和函数表达式(Function Expression)。 // 函数声明 function sum(x,y){ return x+y } // 函数表达式 let sum = function (x,y){ return x+y }一个函数有输入和输出,要在 TypeScript中对其进行约束原创 2020-10-09 23:05:33 · 512 阅读 · 0 评论 -
TypeScript基础篇 --- 数组的类型
数组的类型在 TypeScript中,数组类型有多种定义方式,比较灵活。类型+[方括号]表示 let fibonacci:number[]=[1,2,3];数组的类型中不允许出现其他类型: let fibonacci:number[]=[1,2,"3"];//不能将类型“string”分配给类型“number”。数组的一些方法的参数也会根据数组在定义时约定的类型进行限制: let fibonacci:number[]=[1,2,3]; fibonacci.push原创 2020-09-23 20:48:43 · 1661 阅读 · 0 评论 -
TypeScript基础篇 --- 对象的类型——接口
对象的类型——接口在TypeScript中,我们使用接口(Interaces)来定义对象的类型。什么是接口在面向对象语言中,接口(Interaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。TypeScript中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也经常用于对[对象的形状(shape)]进行描述。 interface Person { name: string,原创 2020-09-18 22:21:29 · 1258 阅读 · 0 评论 -
TypeScript基础篇 --- 类型推论&&联合类型
类型推论如果没有明确的指定类型,那么TypeScript会依照类型推论(Type Inference)的规则推断出一个类型。什么是类型推论以下代码虽然没有指定类型,但是会在编译的时候报错: let myFavoriteNumber = 'seven'; myFavoriteNumber = 7; // 不能将类型“7”分配给类型“string”。事实上,他等价于 let myFavoriteNumber:string = 'seven'; myFavoriteNum原创 2020-09-17 22:03:54 · 502 阅读 · 0 评论 -
TypeScript基础篇 --- 任意值类型
任意值任意值(Any)用来表示允许复制为任意类型。什么是任意值类型如果是一个普通类型,在赋值过程中改变类型是不被允许的:let myFavoriteNumber:string = 'seven';myFavoriteNumber = 7; // 不能将类型“7”分配给类型“string”。但如果是any类型,则允许被赋值为任意类型。let myFavoriteNumber: any = 'seven';myFavoriteNumber = 7;任意值的属性和方法在任意值上访问任何属原创 2020-09-17 22:02:55 · 811 阅读 · 0 评论 -
TypeScript基础篇 --- 原始数据类型
原始数据类型JavaScript中的类型分为两种:原始数据类型(primitive data types)和对象类型(Object types)。栈:原始数据类型(Undefined,Null,Boolean,Number、String)堆:引用数据类型(对象、数组、函数)原始数据类型包括:布尔值,数值,字符串,null,undefined以及es6中的新类型Symbol和BigInt。本节主要介绍前五种原始数据类型在 TypeScript 中的应用。布尔值在ts中使用boolean定义布尔值原创 2020-09-15 15:01:25 · 291 阅读 · 0 评论 -
TypeScript ---- 起步
什么是TypeScript官网的定义:TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript。编译出来的 JavaScript 可以运行在任何浏览器上。TypeScript 编译工具可以运行在任何服务器和任何系统上。TypeScript 是开源的。首先,TypeScript(Ts)是JavaScript(Js)的超集,主要提供了类型系统和对es6的支持。Ts无法直接跑在浏览器上,需要编辑成Js之后才能运行在浏览器上。Ts的编译工具可以运行在任何服务原创 2020-09-15 11:46:20 · 172 阅读 · 0 评论