在Typescript中,我如何声明一个返回字符串类型数组的函数?

8

可能是重复问题:

更新的描述:

链接1:在这篇帖子中,用户谈到了如何使用lambda表达式从函数返回字符串数组。

链接2:在这篇帖子中,用户谈到了如何声明函数的返回类型,正如他在帖子中提到的那样。

以上两个链接都不是我的这个问题的可能重复。所以让我们开始吧。

我在我的代码中期望的是一个返回字符串数组的函数,例如:public _citiesData: string[];

我有一个TypeScript类定义,开头是这样的:

export class AppStartupData {
public _citiesData: string[];

constructor() {
    this.citiesData();
}

    citiesData():string[] {
        return this._citiesData.push('18-HAZARI','A.K','ABBOTABAD');
    }
}

构建代码时出现错误

 Type 'number' is not assignable to type 'string[]'

1
string[] 是表示字符串数组的类型。请为你收到的信息提供一个 [mcve]。 - jonrsharpe
@jonrsharpe 上面的错误是我在构建代码时收到的。 - Ahmer Ali Ahsan
@jonrsharpe请给我一个在TypeScript中声明返回类型为数组的类函数的例子。如果我运行上面的代码,它会显示我描述的错误。 - Ahmer Ali Ahsan
1个回答

17
你的错误是因为你返回了push方法的值。 push方法返回数组的新长度,这就是为什么它试图将数字转换为字符串数组的原因。
所以,你应该这样做:
citiesData():string[] {
    this._citiesData.push('18-HAZARI','A.K','ABBOTABAD');
    return this._citiesData;
}

这就是我错过的东西吗?我无话可说。好的,谢谢。还请告诉我为什么我被踩了?这会影响我的声誉。 - Ahmer Ali Ahsan
1
我不知道,不是我干的。 - thitemple
@AhmerAliAhsan 猜测是因为“有点不同”并没有解释它如何不同,而且你也没有包含完整的回溯信息来帮助定位错误。 - jonrsharpe
@jonrsharpe,请检查我的更新帖子。现在清楚了吗? - Ahmer Ali Ahsan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接