javascript - 为什么方法push()带下划线?

标签 javascript arrays string typescript

首先,您好,我试图用TypeScript制作一个虚构的购物车进行练习。所以我做到了,现在我有一个问题在这里,代码。

class Warenkorb {
    liste:string[];

    add(produkt):void{
        this.liste.push(produkt);
    }
}

这是第一个没有底线的作品。
class Warenkorb {
    liste:string|number[];

    add(produkt):void{
        this.liste.push(produkt);
    }
}

所以这个问题。当我想要数字或字符串时,push方法用红色强调,这对练习不是问题,因为产品只应是字符串,但我也想知道为什么会这样。

不好意思我是德国/奥地利人:D

最佳答案

这两个都应该向您显示错误,因为produkt隐式具有any类型。
list的问题在于它是stringnumber[]。如果要允许字符串和数字都允许,则需要(string | number)[]

您还需要使用一个空数组初始化liste

所以:

class Warenkorb {
    liste: (string|number)[] = [];
// −−−−−−−−^−−−−−−−−−−−−−^   ^^^^−−−−−−−−−−−−
    add(produkt: string|number):void{
// −−−−−−−−−−−−^^^^^^^^^^^^^^^
        this.liste.push(produkt);
    }
}

关于javascript - 为什么方法push()带下划线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60673249/

相关文章:

javascript - (new Array(x)).map 奇怪

c - 为什么 `strchr` 似乎适用于多字节字符,尽管有手册页免责声明?

javascript - MongoDB 按日期查询并按距离排序(Mongoose + Express App)

ios - 循环字典数组中的元素

javascript - Web 上的旋转对象

c - 多词搜索

linux - 如何在拖尾文件时每隔 "n"个空格插入空格或字符?

java - String 是核心 Java 语言的一部分吗?

javascript - 具有大量依赖项的 JavaScript 前端的 Docker 构建过程

Javascript 计数器函数 onload 不起作用