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方法,让我们可以访问它们保存的值。

  • 相关阅读:
    grafana里prometheus查询语法
    Linux 高频工具快速教程
    国内开源镜像站点汇总
    Oracle DBLINK 简单使用
    启动OpenOffice服务
    使用openoffice转pdf,详细
    ORACLE数据库误操作执行了DELETE,该如何恢复数据?
    一个 介绍 superset Kylin 以及大数据生态圈的 博文
    Kylin介绍 (很有用)
    找到一些经验,关于使用thymeleaf时遇到的一些问题
  • 原文地址:https://www.cnblogs.com/yili-2013/p/6370135.html
Copyright © 2011-2022 走看看