如何导入isDate?

时间:2019-03-23 03:56:06

标签: angular npm

我想在一种方法中使用isDate()。 Visual Studio代码自动将import { isDate } from '@angular/common/src/i18n/format_date'添加到了我的组件中。但是编译时出现错误:ERROR in . . . : error TS2305: Module '"C:/Users/John/my-project/node_modules/@angular/common/common"' has no exported member isDate'

当文件位于/node_modules/@angular/common/common中时,为什么编译器会看着'@angular/common/src/i18n/format_date',如何使它在正确的位置显示?

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;
    }
  }
}

2 个答案:

答案 0 :(得分:1)

日期实际上不是JavaScript中的数据类型。但是要知道某物是否是Date对象,可以使用instanceof针对Date进行测试。

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

export default class SignUp extends Vue {
    email: string = '';
    password: string = '';

    async onSubmit(){
        if ((this.$refs.form as any).validate()) {
            const auth = await this.$auth.login(this.email, this.password)
        }
    }


}

甚至从代码中删除以下行,然后尝试一下。.

// Returns if value is a date object
isDate (value) {
   return value instanceof Date;
}

答案 1 :(得分:0)

突然,我的IDE(Visual Studio代码)为我提供了“ util”中isDate的选项(我以前不相信该选项可用)。当我import { isDate } from 'util';时,现在一切正常。