打字稿中出现“类型'()=>字符串[]'缺少类型'字符串[]'的以下属性:弹出,推入,连接,联接和另外25个”错误

时间:2019-12-05 01:47:37

标签: typescript

我想通过获取环境变量的值来设置配置文件。
但是我因以下错误而延迟:

  

类型'()=>字符串[]'缺少类型'字符串[]'的以下属性:pop,push,concat,join和另外25个。

// env set
// MQTT_BROKER_TOPIC=/test/stack/overflow/kbg, /test/stack/overflow/kbg22

// interface
export interface BrokerInfo {
  host: string;
  port: number;
  topic: string[];
};

// topic return data
const envBrokerParse = (): string[] => {
  let result:string[] = [];
  const envBrokerTopic: string|undefined = process.env.MQTT_BROKER_TOPIC;

  if (!envBrokerTopic) { result = envBrokerTopic.split(','); }
  if (result.length === 0) { result = ['/test/stack/overflow/kbg']; }

  return result;
}

/**
 * mqtt broker info
 */
export const mqttBrokerInfo: Array<BrokerInfo> = [
  {
    host: 'localhost',
    port: 1883,
    topic: envBrokerParse, // type error
  },
];

试图将“ envBrokerParse”的返回值放在“主题”中,但是发生了错误。
我认为“ envBrokerParse”必须返回字符串[]类型。
但我不知道为什么会发生此错误。是什么原因?

1 个答案:

答案 0 :(得分:1)

这就是你想要的

export const mqttBrokerInfo: Array<BrokerInfo> = [
  {
    host: 'localhost',
    port: 1883,
    topic: envBrokerParse(), // no type error  what you want is envBrokerParse()
  },
];