学习angualr之前需要了解的typeScript知识
enum Gender{
male,
female
} var sex:Gender;
var a: any; a = 12;
a = 'abc';
【类型推理、类型推测】---根据初始化的值推测类型(隐式类型推测)
【类型推理、类型推测】---根据初始化的值推测类型(隐式类型推测)
var a = 13; a = 'abc'; // 报错 , ts 已经推理 a: number;
var a; a = 12;
a = 'abc'; // a: any;
【冲突检测】编译器会自动排除掉无用的选项
enum WEEK {
SUN,
SAT,
FRE,
TUS
} var w = WEEK.SUN; switch(w) {
case WEEK.SUN:
break;
case WEEK.STA;
break;
} // 报错,不会出现WEEK.STA,所以ts编译器认为不应该写第二种case
【联合类型】
var a:number | string; a = 12;
a = 'abc';
var a:number | string; var b: boolean; a = b ? 12: false;
// 报错,false不能作为结果
【数组的类型】
var arr = [12, 5, 8]; // 隐式类型声明 var arr:number[] = [12, 5, 8]; arr[3] = 'abc'; // 报错
interface Array<T> {
reverse(): T[];
sort(compare?: (a: T, b:T) => number):T[];
...
}
var arr:number[] = [12, 5]; // 等同于 var arr: Array<number> = new Array<number>();
【函数的类型】 参数和返回值都可以定义类型
function show(a: any, b:number) {
console.log(a + b);
} show(12,5); // 报错
参数不仅可以有类型还有函数签名检查(匹配参数的数量)
function show(a: number, b: number) {
console.log(a + b);
} show(12); // 报错
返回值
function sum(a:number, b:number):string {
return a + b;
} console.log(sum(12,5)); // 报错,返回值是string
【外部变量声明】 declare
console.log(a); // 报错
declare var $; $(function() {
$('#div')
})
// 不报错
function ajax(url: string, success: (res: string, code: number) => vodi, error: (code:number) => void) {
;
} ajax('1.txt', () => {}, () => {}); // 参数和返回值都有约定
var point: {x:number, y:number, z?:number}; point = {x:12,y:5} point = {x:12,y:5,z:8}
function show(a: Object) { }
// json
class Click implements inter { }
interface Point {
x: number,
y: number,
z?: number
} var p:Point p = { x:12, y:5};
三、class
class Person {
// 成员属性
name: string;
age: number; // 构造器
constructor(name: string, age:number) {
this.name = name;
this.age = age;
} // 成员方法
showMe() {
console.log(`我的名字是${this.name},我的年龄是${this.age}`)
}
} var p = new Person('jason', 18); p.showMe();
class Person {
public name: string,
private age: number
} var p = new Person(); p.name = 'jason'; // 报错,name只能在class内部使用
class Calc<T> {
a: T;
b: T; constructor(a:T, b: T) {
this.a = a;
this.b = b;
} show(c: T) {
console.log(this.a);
}
} var obj = new Calc<number>(12, 5); obj.a = 12;
obj.b = 'abc'; // 没生命类型为any,但是<number>会替换class中的<T> obj.show(99);
有限制,但不是any,是一个有范围的any。
学习angualr之前需要了解的typeScript知识的更多相关文章
- 学习Scala: 初学者应该了解的知识
Scala开发参照清单 这里列出在开发一个Scala工程中需要参照的资料. 官网网站 http://www.scala-lang.org/ 文档网站 http://docs.scala-lang.or ...
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...
- 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)
这篇文章主要介绍了学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等),需要的朋友可以参考下 Ruby 这个就不用多说了 RVM 用于帮你安装Rub ...
- 总结了零基础学习Java编程语言的几个基础知识要点
很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面 初学者先弄清这 ...
- [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
[源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...
- 学习Java,还需要学好哪些知识
很多人认为学好一门程序语言就需要学好逻辑,其实这对于很多人而言是对的,但是真的对于需要写程序的学员来说,只有逻辑好其实是不够的,如果你能具备以下几项能够为你在程序编译中大大提高工作效率.现在昆明jav ...
- Swift 2.0 字符串学习笔记(建议掌握OC字符串知识的翻阅)
自己公司开现在使用OC语言在写,但Swift似乎是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触swift,但又由于公司的项目赶,也没有时间去好好地学习这款开发语言.现在年底了,项目 ...
- 学习Spring必学的Java基础知识(2)----动态代理
Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...
- 我的 FPGA 学习历程(01)—— FPGA 基础知识和 Quartus 的安装
高级的嵌入式市场主要分为以下三类:ARM.DSP 和 FPGA. 其中 ARM 是行业内的佼佼者,目前几乎所有的安卓智能手机都使用 ARM 授权的 CPU架构:而 DSP(数字信号处理器) 早年就被大 ...
随机推荐
- codis服务部署前的操作及初始化
1.检查服务器ipv6模块是否打开,如果打开需要禁用ipv6,防止codis-dashbord连接zookeeper失败. 因为不确定codis-dashbord服务连接zookeeper使用ipv4 ...
- python中的 += 与 +
这一部分首先要理解python内存机制,Python中万物皆对象. 对于不可变对象,改变了原来的值,其别名(变量名)绑定到了新值上面,id肯定会改变 对于可变对象,+ 操作改变了值,id肯定会变,而+ ...
- MVVM前端框架
早开始接触MVVM框架的时候,是在学习WPF的时候,后面陆陆续续接触到了很多的前端JS框架,个人觉得大同小异,也没有去研究源代码,所以都停留在使用的阶段.当然对于我来说,使用这些JS框架,最关注的无非 ...
- ASP.NET MVC+Redis (准备工作)
今天准备更新这个项目的第二篇博客.有一点需要说明的是之前觉得用的是Asp.net的WebPage,经过查看微软的官方文档还有相关的博客,相比较而言使用起来需要安装一个自动工具WebMatrix可以很快 ...
- Java编程中获取键盘输入实现方法及注意事项
Java编程中获取键盘输入实现方法及注意事项 1. 键盘输入一个数组 package com.wen201807.sort; import java.util.Scanner; public clas ...
- WinForm中的图表控件Chart
第一次接触Chart控件,发现了这个Chart控件的实例项目,非常强大,用示例的方法介绍了该控件各式各样的用法. 下载链接
- JavaScript编程题(含腾讯2016校招题)
作者:ManfredHu 链接:http://www.manfredhu.com/2016/04/02/15-veryGoodForUsing/ 声明:版权所有,转载请保留本段信息,否则请不要转载 几 ...
- 在kolla中配置cinder ceph多后端
原文链接:在kolla中配置cinder ceph多后端
- javar入门——基本数据类型
Java中的数据类型分为两类: 基本数据类型(或者称为原生数据类型) 引用数据类型 基本数据类型 8种:6种基本数据类型,1种字符型,1种布尔型 byte,short,int,long,float,d ...
- django-ORM相关代码及其sql执行次数
1.普通情况:通过log可以看出,这种情况下,访问了1次数据库 def test(request): """测试连表""" users = ...