为什么没有Angular尊重方法签名中明确要求的类型Date?

时间:2018-01-08 21:04:43

标签: angular date types

我很惊讶以下引发了错误。似乎提供的输入的类型是 string 而不是,因为我期待 Date 。怎么样?

static datify(input: Date, format?: string): string {
  if (!input)
    return "";

  const yyyy = input.getFullYear() + "";
  ...
}

我通过显式创建 Date 类型的对象来实现它,但它让我不得不这样做。另外,我担心通过添加这个实例,我已经介绍了一些我目前正在监督的其他问题。

static datify(input: Date, format?: string): string {
  if (!input)
    return "";

  input = new Date(input);

  const yyyy = input.getFullYear() + "";
  ...
}

1 个答案:

答案 0 :(得分:2)

Javascript是一种弱类型编程语言。这意味着在运行时期间不进行类型检查。由于打字稿被编译成Javascript,变量类型"日期"在运行期间没有被检查,意味着,它仍然可以是任何类型。