学习angularjs2框架,需要了解一些TypeScript知识点,基本了解下面这几个知识点学习AngularJS2 就够用了

1.TypeScript

1.1显示类型的定义

TypeScript类似于java和c++,允许我们显示声明的类型:

let foo : number = 42;

let 声明变量跟js里面定义var一样

1.2 any类型

TypeScript所有的类都是any的子类,如果把所有变量都声明为any类型,就是失去TypeScript编译器带来的优点,慎用any。

1.3 Enum类型

跟java里面的枚举类型一样

enum STATES {
CONNECTING,
CONNECTED,
DISCONNECTING,
WAITING,
DISCONNECTED
};

1.4 Array类型

TypeScript中的数组和JavaScript类似。

let randomItems: any[] = [];
randomItems.push(1);
randomItems.push("foo");
randomItems.push([]);
randomItems.push({});

1.5 Function类型

如果使用函数表达式的方式把一个函数赋值给一个变量,可以如下定义:

let variable:(arg1:type1,arg2:type2,...) = >returnType

例如:

let isPrime: (n:number) => boolean = n=>{
//body }

如果采用函数声明的方式

function isPrime(n:number): boolean{
//body
}

如果需要在对象字面量里面定义方法

let math = {
squareRoot(n:number):number{
  //body
}
}

如果我们定义的函数只会产生一些副作用,而不是返回一个值,那么我们可以把它定义成void函数:

let person = {
_name :null,
setName(name:string):void {
  this._name =name;
}
}

1.6 定义类

class Human {
static totalPeople = 0;
_name : string;
constructor(name){
    this._name = name;
    Human.totalPeople += 1;
}
get name(){
  return this._name;
}
set name (val) {
  this._name = val;
}
talk() {
  return 'hello ${this.name}';
}
}

可以如下调用

let human = new Human('foo');
console.log(human._name);

1.7 访问修饰符

public 全局可访问

private 当前类内部访问

portected 当前类内部或者子类中访问

1.8 定义接口

interface Accountable {
getIncome(): number;
}

实现这个接口

class Firm implements Accountable {
getIncome(): number{
  //body
}
}
class Individual implements Accountable {
getIncome(): number{
  //body
}
}

和java语法一样,如果实现了这个接口,那么必须实现这个接口的里面定义的所有方法。

1.9 接口继承

接口之间可以相互继承,并支持多继承

interface Accountable {
accountNumber: string;
getIncome():number;
}
interface Indivdual extends Accountable{
ssn: string;
}

1.10 使用TypeScript装饰器提升表现力

class Http{
//body
}
class GitHubApi{
constructor (@Inject(Http) http){
  //body
}
}

1.11 使用泛型函数

function identity<T>(arg:T){
return arg;
}

多重泛型

let pair = new Pair<string,number>();
pair.key = "foo";
pair.value = 42;

TypeScript基本知识(为学习AngularJS2框架做个小铺垫)的更多相关文章

  1. html/css 盒子布局 Margin 、Padding 、border 以及 清除浮动的知识 (学习HTML过程中的小记录)

    html/css  盒子布局 Margin .Padding .border 以及 清除浮动的知识 (学习HTML过程中的小记录) 作者:王可利(Star·星星) width     是"宽 ...

  2. java基础知识再学习--集合框架-对象的强、软、弱和虚引用

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/53092 本文 ...

  3. 一点记忆—— Java框架知识的学习有感

    一点记忆—— Java框架知识的学习有感         说一下自己学习的框架知识的历程吧:好久了,应该是一年前,也就是大三上的时候,我对于基本的 Java编程就已经达到所谓的“熟练”,认为自己可以在 ...

  4. Django学习---Web框架及基础知识

    Django学习---Web框架 web框架的本质 我们在学socket,我们创建一个socketserver,然后运行起来,有一个client客户端要连接socket服务端,连接上之后,如果两边都没 ...

  5. 人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍

    人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍 工业机器人,家用机器人这些只是人工智能的一个细分应用而已.图像识别,语音识别,推荐算法,NL ...

  6. 深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架

    这篇博客是hibernate学习的第一篇,主要简介hibernate框架,之后简单说一下hibernate的文件夹结构,最后写一个简单的hibernate实例.通过这三步来简单的认识一下hiberna ...

  7. 深入浅出学习Hibernate框架(二):JDBC基础操作

    上篇博客<深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架>简单介绍了一下Hibernate框架,并且举了一个实例来了解Hibernate.这篇博客将介绍JD ...

  8. 人工智能范畴及深度学习主流框架,谷歌 TensorFlow,IBM Watson认知计算领域IntelligentBehavior介绍

    人工智能范畴及深度学习主流框架,谷歌 TensorFlow,IBM Watson认知计算领域IntelligentBehavior介绍 ================================ ...

  9. (*)(转)要快速学习SSM框架,你需要一套学习曲线平滑的教程

    作者:meepo链接:https://www.zhihu.com/question/57719761/answer/156952139来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

随机推荐

  1. windows python flask上传文件出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads'的解决方法

    在浏览器中输入时,出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads' http://127.0.0.1: ...

  2. 移动端高清、多屏适配方案——rem

    背景: 开发移动端H5页面 一套设计图 不同尺寸的手机 不同分辨率的手机 方案:使用rem作为单位解决一套设计图适应不同分辨率,不同尺寸的手机. 概念: REM(font size of the ro ...

  3. @ModelAttribute--SpringMVC 注解系列文章(二)

    概述 在日常的开发工作中,更新操作是经常会涉及到的一个功能,但是对于一条记录的更新,往往只会更新一部分的信息,而不会整条记录都更新,比如修改用户年龄的时候,用户密码是不需要修改的,针对这种情况,处理的 ...

  4. CentOS 下安装 Node npm pm2

    1.node安装 参考:http://blog.csdn.net/haidaochen/article/details/7257655 下载,你需要在https://nodejs.org/en/dow ...

  5. HTML 部分常用属性、组成属性|...超链接、路径、锚点、列表、滚动、URL编码、表格、表单、GET和POST

    URL地址 就是我们所说的网址:www.jd.com 浏览器内核,渲染引擎 Ie内核:triteent 谷歌/欧鹏:blink 火狐:gecko 苹果:webkit 渲染引擎是出现兼容性的根本问题 - ...

  6. 这是对position讲解最通俗易懂的版本了。

    position 为了制作更多复杂的布局,我们需要讨论下 position 属性.它有一大堆的值,名字还都特抽象,别提有多难记了.让我们先一个个的过一遍,不过你最好还是把这页放到书签里. static ...

  7. pygame加载中文名mp3文件出现error

    好一阵子没有写东西了,最近几天在做一个基于Python pygame的音乐播放器,本来想做完了,再来发篇文章的,可越做越深,框架大致出来了,考虑周期比较长,也可能是我个人问题,做得比较慢,最近.下面来 ...

  8. Java对象的内存模型(一)

    前言 新人一枚,刚刚入门编程不久,各方面都在学习当中,博文有什么错误的地方,希望我们可以多多交流! 最近,在开发App后台过程中,需要将项目部署到云服务器上.而云服务器的内存大小却只有1G.要如何做到 ...

  9. 统一我的博客文章的CSS样式代码

    一.前因后果 之前写博客的时候也有写一些CSS代码来美化,不过都是凌乱的,每次再写一篇,又得重头来过去想,或者去拷贝原来的CSS设置.由于逻辑性不强,找一个配套的格式出来要花费不少时间. 今天我把部分 ...

  10. Android™ 1.5 android.R.drawable Icon Resources

    图标一览表: http://www.darshancomputing.com/android/1.5-drawables.html 官  方  API: http://developer.androi ...