Angular 如何导入isDate?

Angular 如何导入isDate?,angular,npm,Angular,Npm,我想在我的一个方法中使用isDate()。Visual Studio代码自动将“@angular/common/src/i18n/format_date”的import{isDate}添加到我的组件中。但是我在编译时遇到一个错误:error in…:错误TS2305:模块“C:/Users/John/my project/node_modules/@angular/common/common”没有导出的成员isDate“ 当文件位于'@angular/common/src/i18n/format

我想在我的一个方法中使用
isDate()
。Visual Studio代码自动将“@angular/common/src/i18n/format_date”的import{isDate}添加到我的组件中。但是我在编译时遇到一个错误:
error in…:错误TS2305:模块“C:/Users/John/my project/node_modules/@angular/common/common”没有导出的成员isDate“

当文件位于
'@angular/common/src/i18n/format\u date'
中时,为什么编译器要查看
/node\u modules/@angular/common/common
,我如何使它看起来在正确的位置

import { Component, Input } from '@angular/core';
import { Member } from '../member';
import { isDate } from '@angular/common/src/i18n/format_date';

@Component({
  selector: 'app-enroll-form',
  templateUrl: './enroll-form.component.html',
  styleUrls: ['./enroll-form.component.css']
})
export class EnrollFormComponent {
  @Input() member: Member = new Member("");

  constructor() {

  }

   memberKeys = Object.keys(this.member);

  primType(s: string) {
    if (typeof(s)==='string' || typeof(s)==='number' || isDate(s)) {
      return true;
    } else {
      return false;
    }
  }
}

日期在javascript中不是真正的数据类型。但要知道某个对象是否是日期对象,可以使用instanceof和Date进行测试

尝试创建自己的函数并在primType函数中调用它

// Returns if value is a date object
isDate (value) {
   return value instanceof Date;
}
甚至从代码中删除下面的一行,并尝试它的工作原理

import { isDate } from '@angular/common/src/i18n/format_date';

突然,我的IDE(VisualStudio代码)在“util”中给了我一个isDate选项(我以前不相信这个选项对我是可用的)。当我
从'util'导入{isDate}时现在一切正常

Isdate方法包含未正确导入的模块。非常感谢您的回复。如何正确导入?isDate.isDate(值)尝试此IDE(Visual Studio代码)拒绝了该.Hm。您的错误似乎表明在npm安装过程中出现了一些问题。它基本上是说你的一个LIB坏了(在这个例子中,角度本身)。是否可以删除节点_模块并重新安装npm?如果这是问题所在,它应该会解决。非常感谢,@Anusha_Mamidala。这可以清除错误,但在我将其标记为答案之前,我的问题是,在TypeScript中,我将变量声明为type
Date
作为
value
传递给isDate,但该变量尚未初始化为实际日期,因此isDate将返回
false
。我真正想要的(这可能需要另一个问题)是找出变量是如何声明的,而不是它当前持有的值。有没有办法找出一个变量是如何在TypeScript中声明的?Tks!你的意思是说你想检查这个值是未定义的还是空的,或者它有一些值否。我根本不在乎价值。我只是想看看变量声明为什么类型。我开始担心这是不可能的,因为在运行时,Javascript没有任何关于如何声明TypeScript变量的引用。除非我错了,否则我想我必须使用一种变通方法,比如为
Date
类型变量使用一种特殊的命名约定。如果您可以像
const d:Date=new Date()这样声明变量那么这是可能的。如果不可能,我可以清楚地知道它的用例吗,或者你可以发布你的示例代码,这样我就可以想到用例并发布答案了吗