如何使用:interface,dictionary和constructors创建和使用接口?

时间:2014-03-31 08:38:35

标签: javascript interface

我正在尝试设计一个易于使用且界面友好的界面(即它可以帮助您输入错误的信息)。

我看过Tizen web-api的文档,我非常喜欢这个结构。我无法弄清楚的是。是关于页面实现的信息还是仅仅是文档?以下是一个示例:ContactNameContactNameInit

ContactName是您可以在javascript中创建的对象,ContactNameInit可以轻松完成此操作。要创建ContactName,您可以编写var name = new ContactName({firstname: "james"});,这将创建具有属性firstname为james的对象。

该方法使用已定义的类型/类和(如果文档是实现的)简单使用interface字。

这是我认为值得实现的界面的唯一例子。我找到了一些链接,其中接口是通过创建的对象实现的,在我看来,这些对象不是接口,而其他替代方案看起来是错误的(虽然它们可能是正确的方法?)。示例:Interface in JavascriptObject oriented Javascript

我想实现以下(此代码不起作用): (Tizen web-api Contact)的功能副本

dictionary CarInit{
    DOMString model;
    // more attributes etc.
}

[Constructor(optional CarInit? carInitDict), Constructor(DOMString stringRepresentation)]
interface Car{
    attribute DOMString? model;
    // more attributes and methods, foo() for example.
}

我是否需要在API中实现更多内容才能使此代码正常工作?我可以使用此代码,还是仅仅是文档?

在Tizens页面上有很多这些´type´?,这意味着要求输入属于类型。这是javascript标准,文档还是他们使用的东西?

如果以上所有都是错误的。 达到预期效果的最简单方法是什么?我想要的主要问题是对象的构造函数,以便您可以编写:var foo = new bar({foobie:value, barbie:value})等。

1 个答案:

答案 0 :(得分:0)

JavaScript根本没有接口。接口的常用方法是结合“鸭子打字”的文档 - 例如,API接受一个对象并提供对象“像鸭子一样走路并像鸭子一样说话”(具有相关的方法和/或属性), API对该对象感到满意。

如果您想使用强类型,JavaScript不适合您。您可以考虑TypeScript,这是一种基于JavaScript的语言,可以添加输入,然后将其“编译”为JavaScript以进行部署(例如,它将在浏览器和支持JavaScript的其他环境中运行)。但这对你有用的程度取决于你如何发布API,以及它是如何被消费的。

另一个选择是为您的API设置一个“开发人员”模式,它对对象进行大量检查以确保它们符合预期的方法和属性集,然后是“发布”或“运行时”模式它假定事情会很好(以避免检查的运行时性能损失)。