美文网首页
索引签名

索引签名

作者: 冰落寞成 | 来源:发表于2024-02-01 11:29 被阅读0次

    当你要遍历一个对象或者数组时,有时你并不提前知道类型属性的所有名称,但你确实知道值的形状。在这些情况下,你可以使用索引签名来描述可能值的类型,例如(格式化时间):

    interface OptIndexSignature{ // 索引签名
      [propName:string]:string
    }
    const opt:OptIndexSignature = {
          'y+': date.getFullYear().toString(), // 年
          'm+': (date.getMonth() + 1).toString(), // 月
          'd+': date.getDate().toString(), // 日
          'H+': date.getHours().toString(), // 时
          'M+': date.getMinutes().toString(), // 分
          'S+': date.getSeconds().toString() // 秒
          // 有其他格式化字符需求可以继续添加,必须转化成字符串
        }
    for (const k in opt) {
          ret = new RegExp('(' + k + ')').exec(fmt)
          if (ret) {
            fmt = fmt.replace(
              ret[1],
              ret[1].length === 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
            )
          }
        }
    

    上面,我们有一个 OptIndexSignature接口,它有一个索引签名。这个索引签名表明当一个 OptIndexSignature被一个 string 索引时,它将返回一个 string

    索引签名属性只允许使用某些类型:string、number、symbol、模板字符串模式以及仅由这些组成的联合类型

    最后,你可以使索引签名 readonly 以防止分配给它们的索引:

    interface OptIndexSignature{ // 索引签名
     readonly  [propName:string]:string
    }
    

    相关文章

      网友评论

          本文标题:索引签名

          本文链接:https://www.haomeiwen.com/subject/ayfzodtx.html