什么是实现这个自定义打字稿模块的正确方法?

时间:2017-08-09 23:57:07

标签: javascript angular typescript

假设我想实现并使用以下ts模块。它只是一个验证名字的基本验证器:

export namespace Validators
{
    export class NameValidator
    {
        constructor()
        {
        }

        FirstNameIsValid(firstName: string)
        {
            return firstName.length < 20;
        }
    }
}

对我来说,实施上述模块的正确方法是什么?另外,从ng2组件中引用和使用该模块的正确方法是什么?以下import语句不起作用:

import { Validators.NameValidator } from './modules/name-validator';

1 个答案:

答案 0 :(得分:0)

我过去的做法是创建一个模块

module Formatter{

  export class SsnFormatter {
        ssn: string;
        constructor(unformattedSsn: string) {
            this.ssn = unformattedSsn.replace(/(\d{3})(\d{2})(\d{4})/, '$1-$2-$3');
        }
        formatSsn() {
            return this.ssn;    
        }
    }
}

然后在其他打字稿文件中将其称为

let f = new Formatter.SsnFormatter('111111111');
console.log(f);

只要您的类位于同一模块名称空间内,您就应该能够直接引用它。

这是来自角度1.x项目,但TS或角度的版本无关紧要,这是在模块之间进行通信的打字稿。