TypeScript 素描 - 类
本文虽然是学自官方教程而来,但是也融入了自己的理解,而且对官方的例子做了一些修改
/*
类 面向对象编程的一大核心
使用C#、Java进行编程的朋友肯定已经是不能够再熟悉了
TypeScript的类与C#的类有着很高的相似度,但也有着些许不同
*/ //构造函数不同,与类同名不再是构造函数而是方法
//构造函数则是constructor
class Animal {
//构造函数
constructor(public name: string) {
this.name = name }
//方法
Animal() {
console.log(`say hi ${this.name}`);
}
}
let a1 = new Animal("小明");
a1.Animal(); //继承与C#中没有什么区别 使用extends关键字
//有则必须Super父类的构造函数
class Log extends Animal {
constructor(public name: string, public age: number) {
super(name);
this.age = age;
}
}
let l1 = new Log("旺财", 10);
//因为 log父类是Animal ,所以天生log就有Name字段与Animal方法
l1.Animal() //修饰符 与C#类似一共有 private public protected readonly
//无需多言相信大家都懂得这是什么意思
//有趣的是 TypeScript使用的是兼容性类型系统 ,当我们比较两种
//不同类型的时候,并不在乎它们从何而来,如果所有的成员类型都是
//兼容的,那它们就是相同的 /*
还有一个有趣的是,在上面的代码中我并没有写Name字段和Age字段,
构造函数中的参数加了修饰符 public 。这就是TypeScrpt中的参数属
性。name参数同样也是属性
*/ /*
存取器 也就是Get;Set; C#也叫做属性,用来控制字段的访问与设置
下面这个代码相信大家都可以看的懂是做什么
*/ class Employee {
private _fullName: string; get fullName(): string {
return this._fullName;
}
set fullName(name: string) {
if (name == "xxxxx") {
console.log("你这样做是不对的");
} else {
this._fullName = name;
}
}
}
let em = new Employee();
em.fullName; /*
静态成员,嗯这也很容易理解的,它存在于类上而不是类的实例
*/
class Grid {
static origin: string = "staticvalue";
}
Grid.origin; /*
抽象类与抽象方法 abstract关键字 用过C#的朋友也一样知道这是什么,如果不
知道……就去面壁吧
*/
abstract class Animal2 {
abstract makeSound(): void;
} class Log2 extends Animal2 {
makeSound(): void {
console.log("我必须实现");
}
}
TypeScript 素描 - 类的更多相关文章
- TypeScript 素描-基础类型
博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...
- TypeScript入门四:TypeScript的类(class)
TypeScript类的基本使用(修饰符) TypeScript类的抽象类(abstract) TypeScript类的高级技巧 一.TypeScript类的基本使用(修饰符) TypeScript的 ...
- TypeScript 素描 - 接口
/* 接口 C#写多了,接口也自然也是理解的.不过TypeScript中的接口与 C#中的还是有些区别的 接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约 */ //为方法的参数做契约 i ...
- TypeScript 素描 - 泛型、枚举
/* 泛型,好处多多的功能.不过这里最基本的就不打算说了,仅准备说一些 和C#不同的地方 */ /* 泛型接口 GenericIdentityFn 定义了方法的描述等 identity方法则是它的实现 ...
- TypeScript Class(类)
传统的JavaScript注重用函数和基于原型的继承来创建可复用的组件,但这可能让用习惯面对对象方式的程序员感到棘手,因为他们的继承和创建对象都是由类而来的.从JavaScript的下一个版本,ECM ...
- TypeScript 素描 - 模块
/* 其实前面一些都是废话,因为都和C#类似.从模块开始就需要深入的去理解了 文档反复声明了 内部模块现在称做 命令空间 外部模块称为 模块 模块在其自身的作用域里执行,而不是在全局作用域里,也就是说 ...
- TypeScript 素描 - 模块解析、声明合并
模块解析 模块解析有两种方式 相对方式 也就是以/或 ./或-/开头的,比如import jq from "/jq" 非相对方式 比如 import model from ...
- TypeScript 素描 - 模块、命名空间
/* 其实前面一些都是废话,因为都和C#类似.从模块开始就需要深入的去理解了 文档反复声明了 内部模块现在称做 命令空间 外部模块称为 模块 模块在其自身的作用域里执行,而不是在全局作用域里,也就是说 ...
- TypeScript入门-类
▓▓▓▓▓▓ 大致介绍 在ECMASript6中引入了类这一概念,通过class声明一个类.对于学习过C和C++的人应该不会陌生 ▓▓▓▓▓▓ 类 看一个简单的类: class Greeter { g ...
随机推荐
- ThreadLocal 工作原理、部分源码分析
1.大概去哪里看 ThreadLocal 其根本实现方法,是在Thread里面,有一个ThreadLocal.ThreadLocalMap属性 ThreadLocal.ThreadLocalMap t ...
- 记录软件工程课程项目开发时遇到的各种小问题(django)
1.python manage.py makemigrations 无效/无法检测出model的变化 在修改了models.py之后,我们想要更新数据库的表,使用了python manage.py m ...
- [转载]iOS 10 UserNotifications 框架解析
活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...
- PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库
最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQ ...
- SimpleSSO:使用Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端
目录 前言 OAuth2.0简介 授权模式 (SimpleSSO示例) 使用Microsoft.Owin.Security.SimpleSSO模拟OpenID认证 通过authorization co ...
- MongoDB初识
参考: MongoDB资料汇总专题:
- C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
前面一篇随笔企业号的一些基础信息,以及介绍如何配置企业号的回调方式实现和企业号服务器进行沟通的桥梁.本篇主要还是继续介绍企业号的开发工作的开展,介绍微信企业号通讯录管理开发功能,介绍其中组织机构里面如 ...
- MySQL实现两张表数据的同步
有两张表A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录.两张表的结构不同,需要将其中几个字段对应起来.可以用下面的触发器实现. 表A的触发 ...
- Spring 实现数据库读写分离
随着互联网的大型网站系统访问量的增高,数据库访问压力方面不断的显现而出,所以许多公司在数据库层面采用读写分离技术,也就是一个master,多个slave.master负责数据的实时更新或实时查询,而s ...
- c3p0连接数据库的3种方式
c3p0连接数据库的3种方式,这里以mysql为例 1. 直接用set方法设置参数, 基本方法 ComboPooledDataSource dataSource = new ComboPooledDa ...