zoukankan      html  css  js  c++  java
  • TypeScript学习笔记

    元组类型:
    var x : [string, number];
    // 初始化
    x = ['hello', 10]; // OK
    // 错误的初始化
    x = [10, 'hello']; // Error
    但是访问一个已知的索引,会得到正确的类型:
    console.log(x[0].substr(1)); // OK
    console.log(x[1].substr(1)); // Error
    在TypeScript1.4中,当访问超出已知索引的元素时,会返回联合类型:
    x[3] = 'world'; // OK
    console.log(x[5].toString()); // OK
    x[6] = true;

    联合类型:
    联合类型有助于表示一个值的类型可以是多种类型之一的情况。比如,有一个API接命令行传入string
    类型、string[]类型或者是返回一个string的函数,就可以这样写:
    interface RunOptions {
    program:string;
    commandline:string[]|string|(() => string);
    }
    给联合类型赋值也很直观,只要这个值能满足联合类型中任意一个类型那么就可以赋值给这个联合类型:
    var opts: RunOptions = /* ... */;
    opts.commandline = '-hello world'; // OK
    opts.commandline = ['-hello', 'world'];// OK
    opts.commandline = [42]; // Error
    当读取联合类型时,可以访问类型共有的属性:
    if (opts.length === 0) {
    console.log("it's empty");
    }
    使用类型保护,你可以轻松地使用联合类型:
    function formatCommandLine(c: string|string[]) {
    if (typeof c === 'string') {
    return c.trim();
    } else {
    return c.join(' ');
    }
    }

    for...in和for...of的区别:

     for...of和for...in都可以迭代一个列表;但是用于迭代的值却不一样,for...in迭代的是对象的键的列表,而for...of则迭代的是对象的键对应的值。

    另一个区别是for...in可以操作任何对象;它提供了查看对象属性的一种方法。但是for...of关注于迭代对象的值。内置对象Map和Set已经实现了Symbol.iterator方法,让我们可以访问它们保存的值。

  • 相关阅读:
    hadoop中的序列化
    web服务端的架构演变
    网易考拉规则引擎平台架构设计与实践
    spring分布式事务学习笔记(2)
    质量评估面面观--聊一聊软件上线前的质量评估
    用script标签加载
    Windows下命令行下启动ORACLE服务
    笔记本优化八项
    C#编程总结(一)序列化
    学习之路十四:客户端调用WCF服务的几种方法小议
  • 原文地址:https://www.cnblogs.com/yili-2013/p/6370135.html
Copyright © 2011-2022 走看看