如何在TypeScript中将参数的默认值设置为空数组?

cgc*_*ona 8 typescript

关于以下代码,我有两个问题:

  1. 当我编译它时,我得到警告/错误"无法将任何[]'转换为'数组'".这是因为public songPaths: Array = []不合法,我应该去public songPaths: any = []吗?

  2. Object一个合适的默认值public song:Object = new Audio()

例:

'use strict';

class Boombox{
      constructor(public track: number, public codec: string, public song:Object = new Audio(), public currentTime: number = 0, public playing:bool = false, public titles: any = [], public songPaths: Array = []){
      }
}
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 9

要声明无类型数组,请使用any[]而不是Array:

public songPaths: any[] = []
Run Code Online (Sandbox Code Playgroud)

您应该尽可能指定类型,例如:

public songPaths: string[] = []
Run Code Online (Sandbox Code Playgroud)

您没有使用Object默认值.Object是类型,new Audio()是默认值.如果可能,类型应该是您要使用的实际类型.