TS4

简介:
复制代码
类:
类与对象字面量和接口差不多,比较两个类类型的对象时,只有实例的成员会被比较。 静态成员和构造函数不在比较的范围内。
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);
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7227304.html,如需转载请自行联系原作者
相关文章
|
2月前
|
资源调度 JavaScript 前端开发
介绍一下ts
介绍一下ts
39 1
|
2月前
ts文件解密
ts文件解密
130 0
|
8月前
|
JavaScript 前端开发 开发者
ts详解以及相关例子(一篇带你详细了解ts)
ts详解以及相关例子(一篇带你详细了解ts)
59 1
|
9月前
|
JavaScript 前端开发 安全
|
10月前
|
JavaScript 前端开发
ts - ts基础
https://www.tslang.cn/ TypeScript是Microsoft公司注册商标。 TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript代码。 TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。
|
11月前
|
JavaScript 开发者
什么是TS?
什么是TS?
113 0
|
安全
ts是什么
VSCode提示 例如:定义者指定了一个方法: export function foo(name: string): number { return name.length }
129 0