代码之家  ›  专栏  ›  技术社区  ›  POV

如何在接口中定义字符串数组?

  •  1
  • POV  · 技术社区  · 5 年前

    我试过这个:

    export interface ITarifFeatures {
      key: string;
    }
    
    
    export interface ITarif {
       features: ITarifFeatures[];
    }
    

    然后我创建了基于接口的对象:

    let obj<ITarif> {
          name: "Базовый",
          description: "Подходит для...",
          currency: "A",
          price: 1.99,
          period: "Месяц",
          features: ["СМС уведомления"]
        };
    

    但这个属性是错误的:

    features: ["СМС уведомления"]
    

    我也尝试过:

    export type ITarifFeatures = {
      key: string[];
    }
    
    export interface ITarif {
      name: string;
      description: string;
      currency: string;
      price: number;
      period: string;
      features: ITarifFeatures
    }
    
    2 回复  |  直到 5 年前
        1
  •  1
  •   Fullstack Guy    5 年前

    这个 interface 类型 ITarifFeatures 需要一个名为 key 如果您不提供,则传递的是 string 类型 ["СМС уведомления"] 在数组中,请将代码修改为:

    export interface ITarifFeatures {
      key: string;
    }
    export interface ITarif {
        features: ITarifFeatures[];
        [x: string]: any 
    }
    
    let itarif: ITarifFeatures = {key: "СМС уведомления"};
    let obj: ITarif = {
          name: "Базовый",
          description: "Подходит для...",
          currency: "A",
          price: 1.99,
          period: "Месяц",
          features: [itarif]
    };
    

    此外, ITarif 类型将只接受 features 属性,但您正在尝试为其提供更多的键值。为了避免它,添加一个 索引器 [x: string]: any 在原始界面中。

        2
  •  1
  •   FrV    5 年前

    字符串类型!=i特性

    需要的是这样一个物体:

    {
        key:'blabla'
    }