2014-02-18 98 views
1

我遇到过与TypeScript有关的定义的不寻常障碍。我试图为(非常简单的)Backbone.Syphon库编写一个定义文件。 Backbone.Syphon对象仅包含两种方法,serializedeserialize。但是,我一直无法成功编写定义文件。TypeScript Backbone.Syphon的定义

我现有的定义文件如下(离开关闭反序列化的现在,因为它垂直于手头上的问题):

define module Backbone 
    class Syphon { 
    serialize(view: Backbone.View, options: any): any; 
    } 
} 

然而,尝试使用Backbone.Syphon.serialize()任何地方的时候,我收到的错误是:

error TS2094: The property 'serialize' does not exist on value of type 'typeof Backbone.Syphon'

回答

2

这应该是这个样子:

define module Backbone.Syphon { 
    function serialize(view: Backbone.View, options: any): any; 
    // function deserialize(/* etc */): any; 

    class KeyExtractorSet { 
     registerDefault(thing: ($el: any) => void): void; 
    } 

    module KeyExtractors { 
     function register(name: string, thing: ($el: any) => any): void; 
    } 

    /* ... more ... */ 
} 
+0

谢谢,试了一下,你说得很对。不知道我可以直接用点符号声明一个模块 - 谢谢! –