类:
类与对象字面量和接口差不多,比较两个类类型的对象时,只有实例的成员会被比较。 静态成员和构造函数不在比较的范围内。
class Animal {
feet: number;
constructor(name: string, numFeet: number) {}
} class Size {
feet: number;
constructor(numFeet: number) { }
} let a: Animal = new Size(1); //冒号后面仅仅只是检验属性是不是一样的,不是类型
let s: Size = new Animal("",0); function creat(x:Animal){} //冒号只是检验属性,不做类型检查,
creat(a);
creat(s);
console.log(a);//Size {}
console.log(s);//Animal {} -----------------------------------------------------------
交叉类型:
class A{
constructor(public _a1:number,public _a2:number){
this._a1 = _a1;
this._a2 = _a2;
}
fa1(){}
}
interface b{
b1:number;
f1();
}
class B implements b{
b1:number;
f1(){
console.log("f1");
}
fb1(){}
constructor(b1:number,public _B1:number,public _B2:number){
this.b1 = b1;
this._B1 = _B1;
this._B2 = _B2;
}
} var a = new A(0,2);
a._a1 = 1;
var b = new B(3,4,5);
console.log(a);
for(let i in a){
console.log(i + "--" + typeof i);
}
console.log(b);
for(let i in b){
console.log(i + "----" + typeof i);
}
var result;
function extend<T,U>(a : T, b : U): T & U {
result = <T & U>{};
for(let i in a){
//(<T & U>result)[i] = (<T & U>a)[i];
//result[i] = a[i];
(<any>result)[i] = (<any>a)[i];
}
for(let i in b){
if(!result.hasOwnProperty(i)){
// (<T & U>result)[i] = (<T & U>b)[i];
result[i] = b[i];
(<any>result)[i] = (<any>b)[i];
}
}
return result;
}
extend(a,b);
console.log("-----------------");
console.log(result);
for(let i in result){
console.log(i + "----" + typeof i);
}

TS4的更多相关文章

  1. ASP.Net中实现上传过程中将文本文件转换成PDF的方法

    iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...

  2. 从配置读取一段时间(TimeSpan)

    C#的TimeSpan表示一段时间,DateTime表示一个时间点.TimeSpan可正可负,可与DateTime相加减,很方便,我喜欢. 代码中我们经常要表示一段时间,用一个统一的单位(时 或者 分 ...

  3. java从基础知识(七)java集合

    一.集合类介绍 1.List(元素有放入顺序,可重复) 1.1.List的实现 1.1.1.ArrayList ArrayList就是动态数组(需要连续的存储空间),用MSDN中的说法,就是Array ...

  4. Oracle分区

    可以参考文档:http://docs.oracle.com/cd/E18283_01/server.112/e16541/part_admin001.htm#insertedID0 (支持11g和12 ...

  5. 安卓初級教程(5):TabHost的思考

    package com.myhost; import android.os.Bundle; import android.view.LayoutInflater; import android.wid ...

  6. Linux indent

    一.简介 indent可辨识C的原始代码文件,并加以格式化,以方便程序设计师阅读. 二.选项 http://www.runoob.com/linux/linux-comm-indent.html 三. ...

  7. 页面位置 top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHe

    1.top 此属性仅仅在对象的定位(position)属性被设置时可用.否则,此属性设置会被忽略. 代码如下: <div style=" position:absolute; widt ...

  8. java.lang.UnsupportedClassVersionError出错

    代码出错如下:java.lang.UnsupportedClassVersionError: cn/itcast/mybatis/first/MybatisFirst : Unsupported ma ...

  9. DB2和Oracle区别

    转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理 ...

随机推荐

  1. django 实现websocket

    一.简述:django实现websocket,之前django-websocket退出到3.0之后,被废弃.官方推荐大家使用channels. channels通过升级http协议 升级到websoc ...

  2. BZOJ 1443 二分图博弈 网络流

    思路: 二分图博弈嘛 找到最大匹配的必须点 跑个网络流 前后DFS一遍 //By SiriusRen #include <queue> #include <cstdio> #i ...

  3. Spark Streaming概念学习系列之Spark Streaming容错

    Spark Streaming容错 检查点机制-checkpoint 什么是检查点机制? Spark Streaming 周期性地把应用数据存储到诸如HDFS 或Amazon S3 这样的可靠存储系统 ...

  4. Android网络编程随想录(四)

    前面三篇文章从最基础的TCP,HTTP协议理论开始,然后介绍了在Android的开发中所使用的HttpClient和HttpUrlConnection这两种Http客户端.在本文中,我们一起来学习一下 ...

  5. 通过阅读《React 进阶之路》之学习笔记

    第一章: React 通过引入虚拟DOM.状态.单向数据流等设计理念,形成以组件为核心,用组件搭建UI的开发模式.

  6. 常用JQUERY插件大全

    jQuery内容滚动插件-BoxSlider jQuery artDialog对话框插件 移动端日期选择组件 图像延迟加载库Echo.js 轮播图FlexSlider插件 Slick.js幻灯片使用方 ...

  7. jquery mobile动态加载数据后无法渲染

    引自:http://blog.sina.com.cn/s/blog_025270e901016lst.html jquery mobile在动态添加html之后无法渲染控件,无法转换控件的办法! jq ...

  8. boost的单例模式

    template <typename T> struct singleton_default {   private:     struct object_creator     {    ...

  9. JS 实现类似打印的效果(一个字一个字显示)

    <pre id="aa"></pre> <div style="display:none" id="w"> ...

  10. 巧用Ajax的beforeSend提高用户体验

    jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作. $.ajax({ beforeSend:function(){ ...