我正在爲Parse Javascript SDK創建Typescript類型定義。它實際上是完整的。該定義適用於瀏覽和雲代碼,但不適用於Node。(TypeScript)爲Parse SDK(瀏覽器和節點)創建類型定義
使用解析與兩個客戶端和服務器端的javascript
瀏覽實施例:
var GameScore = Parse.Object.extend("GameScore");
節點示例:
var Parse = require('parse').Parse;
var GameScore = Parse.Object.extend("GameScore");
Psuedue類型Definitio ñ
declare module Parse {
interface FacebookUtils {
init(options?: any);
}
class Object {
constructor(attributes?: any, options?: any);
}
module Cloud {
interface FunctionResponse {
success?: (response: HttpResponse) => void;
error?: (response: HttpResponse) => void;
}
}
}
declare module "parse" {
export = Parse;
}
使用解析與新創建的定義
class GameScore extends Parse.Object {}
var gameScore = new GameScore();
一切都將工作在瀏覽很好,因爲解析庫是全球可用。現在
在節點一切都會正常工作,如果進口是這樣的:
var Parse = require("parse");
但進口實際上是這樣的:
var Parse = require("parse").Parse;
所以「.Parse」在導入結束時將導致嘗試訪問Parse.Object時出現問題,因爲在上面的定義中沒有「.Parse」的訪問器。
所以我想要做的是有一個單一的定義文件,適用於瀏覽器和節點。我想過使用接口,但我不認爲這會允許我在需要時執行擴展或實現。
例如:
declare module Parse {
...
interface Parse {
Object: Object;
}
}
declare module "parse" {
export = Parse;
}
這不會允許我對象,它只是定義爲解析接口的屬性。
任何幫助將是偉大的。謝謝。
嗨伯爵,@basarat擊敗了我以下他的良好答案。 – Fenton 2014-09-03 08:21:56
這方面的進展如何?這是否已經在GitHub的任何地方開源? – fatuhoku 2015-06-20 16:54:57
我很好奇這個項目的狀態。 – damianesteban 2015-07-03 03:25:08