我该怎么做?用TypeScript定义Durandal ViewModel
我看过的一些例子,看起来可怕的例如,下面的内容看起来不像OO代码,因此如果它将成为黑客,TypeScript的意义何在。因为没有类定义,所以我根本无法完全理解以下内容。所以我有一个编译代码,没有智能感知,没有能够执行封装等 - 那么为什么要浪费时间呢?
/// <reference path="../durandal/durandal.d.ts" />
/// <reference path="../../scripts/knockout.d.ts" />
import app = require("durandal/app");
import http = require("durandal/http");
export function activate() {
.
.
.
}
其他例子更加时髦,通过导出变量声明。
由此产生的代码并没有太大的好处,它将DI变量称为exports
而代码只是为它添加属性,这是没有意义的。
如果我要在JavaScript中编写所有内容,我会返回一个新的对象,可能是JSON表示法 - 我可以理解,一个合适的工厂方法/类。更少的工作,更清洁,没有时间浪费编译。
那么有人可以解释发生了什么?
- 为什么代码在DI-
exports
对象上创建属性?这就像一个突变通过引用。 - 还有更多的OO方式吗?我可以看到自己出口一门课,但这太奇怪了,违背了我认为是对的,公正的一切。好吧,这太夸张了,但确实有这种感觉。