Parse.com 与 TypeScript:扩展 Parse.Object

dpo*_*sch 4 javascript parse-platform typescript

免责声明:我知道,Parse.com 关闭了它的托管服务。尽管如此,我们将继续使用该框架一段时间,所以这个问题对我们来说仍然很重要。

最近,我开始玩弄 TypeScript,并认为它可以大大提高我解析云代码的效率。所以我做了一些测试,并且成功地能够使用typescript来编写云函数等等。我什至包括了通过打字进行解析的打字定义。

但是,我仍然没有得到一件事:如何以类型安全的方式扩展 Parse.Object?

在普通的 js 中,我会写:

var Foo = Parse.Object.extend("Foo", {
    // instance methods
}, {
    // static members
});
Run Code Online (Sandbox Code Playgroud)

为了获得类型安全,我想在打字稿中写这样的东西:

class Foo extends Parse.Object {
    // static members
    // instance methods
}
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?我错过了什么吗?

小智 7

是的,这是可能的。为此,有几个必要的步骤。首先,您需要将类名传递给父构造函数

class Foo extends Parse.Object {
// static members
// instance methods
    constructor() {
        // Pass the ClassName to the Parse.Object constructor
        super('Foo');
    }

}
Run Code Online (Sandbox Code Playgroud)

此外,您需要将您的类注册为 Parse 对象:

Parse.Object.registerSubclass('Foo', Foo);
Run Code Online (Sandbox Code Playgroud)

在此之后,您可以将它用于您的查询:

var query = new Parse.Query(Foo);
query.find({
    success: obj: Foo[] => {
        // handle success case
    },
    error: error => {
        // handle error
    }
});
Run Code Online (Sandbox Code Playgroud)

这也适用于新的解析服务器开源项目:https : //github.com/ParsePlatform/parse-server