我該怎麼做?用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方式嗎?我可以看到自己出口一門課,但這太奇怪了,違背了我認爲是對的,公正的一切。好吧,這太誇張了,但確實有這種感覺。