
TypeScript
liun_n
这个作者很懒,什么都没留下…
展开
-
TypeScript 自定义类型~ 字符串类型 / 对象类型
自定义字符串类型,使用模版字符串 function getData(code:`${string}:${string}`):void{ console.log(code); } getData('1233:01') let a:`${string}.${string}` = '80.9' 自定义对象类型,使用 interface 关键字 interface obj{ name:string, age:number, type?:string } let o:obj = { nam原创 2021-11-24 17:28:15 · 906 阅读 · 0 评论 -
TypeScript 迷迷糊糊装饰器 / 类、属性、方法、方法参数装饰器 / 装饰器执行顺序
装饰器:一种特殊类型的声明,实际是一个方法,可以注入到了类、属性、方法、参数上来动态扩展类、属性、方法、参数的功能。 装饰器写法 普通装饰器,无法传参,在类的上一行使用@装饰器名字 装饰器工厂,可传参,在类的上一行使用@装饰器名字(装饰器参数) 使用普通装饰器: function logClass(param:any){ console.log(param); //param就是当前类,此处输出 Animal类 } @logClass class Animal{ constructor(.原创 2021-11-19 10:08:17 · 264 阅读 · 0 评论 -
TypeScript 命名空间、命名空间模块化
在代码量较大的情况下,为了避免各种变量命名冲突,可以将相似功能的函数、类、接口等放到命名空间中。 命名空间将代码用关键字 namespace 包裹起来,只对外通过 export暴露需要在外部访问的对象. 创建两个命名空间: namespace A{ interface Animal{ name:string; } export class Dog implements Animal{ name: string; constructor(n:string){ .原创 2021-11-18 09:25:04 · 225 阅读 · 0 评论 -
TypeScript 模块 模块化封装“模拟操作数据库”
模块里的数据是私有的,如果我们想在外部使用模块内的数据(变量、函数、类),我们首先要在模块里通过 export 把数据暴露出来,暴露后通过 import 引入模块,就可以使用模块里暴露的数据了。 单个导出: export var dbUrl = 'xxx' export function getData():void{ console.log('getData...'); } import { getData, dbUrl } from './modules/db' getData() //g原创 2021-11-17 12:42:37 · 1174 阅读 · 0 评论 -
TypeScript 类型、类、接口、泛型综合使用,练习模拟操作数据库
定义一个操作数据库的库,支持不同数据库,不同数据库的功能都一样,都有增add、update、delete、get方法原创 2021-11-15 23:27:52 · 762 阅读 · 0 评论 -
Typescript 泛型、泛型函数、泛型类、泛型接口
泛型 可以支持不特定的数据类型,提高类、接口、方法的复用性。 场景:使用泛型创建可重用的组件,一个组件可以支持多种数据类型的数据,用户可以以自己的数据类型来使用组件 泛型函数 // 只能返回string function getString(value:string):string{ return value } console.log(getString('a')); // 只能返回number function getNumber(value:number):number{ retur原创 2021-11-11 12:45:21 · 786 阅读 · 0 评论 -
Typescript 属性接口、函数型接口、可索引接口、类类型接口、接口扩展
接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范;在程序设计里,接口起到限制和规范的作用。 接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只是规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。typescript中的接口类似于java,同时还增加了更灵活的接口类型。 属性接口 ts 自定义带参数的方法 function printS(s:string):void{ console.log(`pr.原创 2021-11-09 12:46:40 · 721 阅读 · 0 评论 -
Typescript 静态属性&方法 多态 抽象类
静态属性、静态方法 用 static 关键词定义的属性和方法就是静态属性和静态方法,不需要类实例化就可以调用。 静态方法里不能直接调用类里面的属性,可以调用静态属性。 class Person{ public name:string; static age:number; //静态属性 constructor(n:string){ this.name = n } getName():void{ //实例方法 co原创 2021-11-08 11:48:31 · 364 阅读 · 0 评论 -
Typescript 的类、继承、修饰符
ts的类class class Person{ name:string; //属性,前面省略了public关键词 constructor(n:string){ //构造函数,实例化类的时候触发的方法 this.name = n } getName():void{ console.log(`my name is ${this.name}`) } setName(name:string):void{ this.n原创 2021-11-04 10:18:20 · 363 阅读 · 0 评论 -
Typescript 函数
函数定义 和ES5一样,可以用函数声明法和匿名函数法 函数声明法 function add(a:number,b:number):number{ return a+b } 匿名函数法 var add2 = function(a:number,b:number):number{ return a+b } 可选参数 在ES5中,函数的实参和形参可不一样,但是ts中必须一样,若不一样,需要配置可选参数 可选参数必须配置到参数的最后面 var getInfo = function(name:原创 2021-10-16 21:26:36 · 139 阅读 · 0 评论 -
Typescript 数据类型
布尔类型 boolean let a:boolean = true 数字类型 number 字符串类型 string 数组类型 第一种,可以在元素类型后面接上[],表示由此类型元素组成的一个数组let arr:number[]=[] 第二种方式是使用数组泛型,Array<元素类型>:let arr:Array<number> = [] 元组类型 tuple(数组的一种) 可以定义一个已知元素数量和类型的数组,各元素的类型不必相同let arr:[number,string]原创 2021-10-16 21:22:00 · 101 阅读 · 0 评论 -
Typescript 安装及自动编译
Typescript安装编译 安装 npm i -g typescript 运行 tsc xxx.ts Typescript开发工具 vscode 自动编译.ts文件 通过tsc --init 创建tsconfig.json配置文件 在tsconfig.json文件中配置编译的js输出路径 outDir, 若不配置,则默认为当前编译ts的路径 选择vscode工具栏“终端”-“运行任务…”-“typescript”-“typescript监视” ...原创 2021-10-16 21:16:34 · 137 阅读 · 0 评论