zoukankan      html  css  js  c++  java
  • TypeScript学习(十)索引签名

    总结

    索引签名在实际开发中经常用到,例如服务端接口返回了很多数据但是存在我们不需要用的,如果定义接口的时候不定义它们会报错,这时我们使用索引签名,就可以避免这个问题

    注意:TypeScript 的索引签名必须是 string 或者 number。索引签名的名称(如:{ [index: string]: { message: string } } 里的 index )除了可读性外,并没有任何意义。例如:如果有一个用户名,你可以使用 { username: string}: { message: string },这有利于下一个开发者理解你的代码。当你声明一个索引签名时,所有明确的成员都必须符合索引签名:

    // 例1
    // ok
    interface Foo {
      [key: string]: number;
      x: number;
      y: number;
    }
    
    // Error
    interface Bar {
      [key: string]: number;
      x: number;
      y: string; // Error: y 属性必须为 number 类型
    }
    
    // 例2
    const foo: {
      [index: string]: { message: string };
    } = {};
    
    // 储存的东西必须符合结构
    // ok
    foo['a'] = { message: 'some message' };
    
    // Error, 必须包含 `message`
    foo['a'] = { messages: 'some message' };
    
    // 读取时,也会有类型检查
    // ok
    foo['a'].message;
    
    // Error: messages 不存在
    foo['a'].messages;

    参考

    索引签名

  • 相关阅读:
    软工第1次阅读作业
    软工第0次作业
    第四次博客
    第三次博客
    第二次
    第一次博客
    提问回顾与个人总结
    软件工程结对作业
    软件工程第一次阅读作业
    软件工程第0次个人作业
  • 原文地址:https://www.cnblogs.com/kunmomo/p/15736358.html
Copyright © 2011-2022 走看看