2017-06-18 22 views
1

我想知道是否有可能描述一种接口属性应该具有的格式。例如:如何确保财产上的某种格式

interface User { 
    age?: number, 
    name: string, 
    birthdate: string // should have format 'YYYY-MM-DD' 
} 

我读了关于decorators,但它似乎只适用于类,而不是接口。

我正在用node/express构建一个API,并希望进行输入验证。所以我正在考虑Celebrate这可以采取joi type Schema验证输入。但我想正如你看到我尝试使用一个接口来定义一个给定的终点的输入应该怎么看起来像使用打字稿,而不是来定义我的模式/视图模型...:

  • 年龄:数,可选
  • 名称:字符串
  • 生日:字符串格式为 “YYYY-MM-DD”

任何提示和帮助非常感谢:)

+0

[正则表达式验证的字符串类型仍在讨论中](https://github.com/Microsoft/TypeScript/issues/6579) – Saravana

+0

谢谢,让我们希望它被添加到语言 – olefrank

回答

0

任何^ h并帮助非常感谢:)

首先,你将不得不编写验证代码。它不会神奇地发生。

两种方法:

带外验证

您使用validate(obj) => {errors?}。您创建了一个验证函数,该函数接受并反对并告诉您任何错误。你可以很容易地编写这样一个函数。

在带验证

而不是{birthdate:string}您有类似{birthdate:FieldState<string>}其中FieldState保持验证和错误特定领域。这是https://formstate.github.io/#/采取的方法,但您可以轻松地创建类似的东西。

上验证

的说明我喜欢的验证器一样简单(value) => error?(值可选的错误),因为他们可以框架无关,使用/重用死亡。这也是formstate所使用的验证器。当然,这只是我的意见,你可以尝试什么适合你的需求