javascript - SPServices 的 TypeScript 定义文件

标签 javascript sharepoint typescript spservices definitelytyped

我想知道是否有人知道是否有 SPServices JS 库的 TypeScript 定义文件?我在 GitHub repo 中找到了一个 .d.ts 文件但它似乎并不完整。我还搜索了(除了 this definition request 之外没有运气)通过 Definitely Typed 上可用的内容。如果不存在,是否有人知道有关如何从 JS 代码创建定义的信息的良好引用?

最佳答案

我没有找到您需要的定义。但是,您可以访问

http://definitelytyped.org/

并阅读guides贡献或这个 quick introduction .

总结:

  • 本质上,有必要创建一个 .d.ts然后由特殊注释引用的文件 /// <reference path="../path/to/file.d.ts" />在您的 TypeScript 脚本中。
  • .d.ts 的内容文件通常是手写的。 lib.d.ts由脚本生成,但它是一个异常(exception)。你可以查一些projects that try to generate definition files .
  • 定义文件 ( amplifyjs.d.ts ) 的完整示例:

    // Type definitions for AmplifyJs 1.1.0
    // Project: http://amplifyjs.com/
    // Definitions by: Jonas Eriksson <https://github.com/joeriks/>
    // Definitions: https://github.com/borisyankov/DefinitelyTyped
    
    /// <reference path="../jquery/jquery.d.ts" />
    
    interface amplifyRequestSettings {
        resourceId: string;
        data?: any;
        success?: (...args: any[]) => void;
        error?: (...args: any[]) => void;
    }
    
    interface amplifyDecoder {
        (
            data?: any,
            status?: string,
            xhr?: JQueryXHR,
            success?: (...args: any[]) => void,
            error?: (...args: any[]) => void
        ): void
    }
    
    interface amplifyDecoders {
        [decoderName: string]: amplifyDecoder;
        jsSend: amplifyDecoder;
    }
    
    interface amplifyAjaxSettings extends JQueryAjaxSettings  {
        cache?: any;
        dataMap?: {} | ((data: any) => {});
        decoder?: any /* string or amplifyDecoder */;
    }
    
    interface amplifyRequest {
    
        /***
         * Request a resource.
         * resourceId: Identifier string for the resource.
         * data: A set of key/value pairs of data to be sent to the resource.
         * callback: A function to invoke if the resource is retrieved successfully.
         */
        (resourceId: string, hash?: any, callback?: Function): void;
    
        /***
         * Request a resource.
         * settings: A set of key/value pairs of settings for the request.
         *   resourceId: Identifier string for the resource.
         *   data (optional): Data associated with the request.
         *   success (optional): Function to invoke on success.
         *   error (optional): Function to invoke on error.
         */
        (settings: amplifyRequestSettings): any;
    
        /***
         * Define a resource.
         * resourceId: Identifier string for the resource.
         * requestType: The type of data retrieval method from the server. See the request types sections for more information.
         * settings: A set of key/value pairs that relate to the server communication technology. The following settings are available:
         *   Any settings found in jQuery.ajax().
         *   cache: See the cache section for more details.
         *   decoder: See the decoder section for more details.
         */
        define(resourceId: string, requestType: string, settings?: amplifyAjaxSettings): void;
    
        /***
         * Define a custom request.
         * resourceId: Identifier string for the resource.
         * resource: Function to handle requests. Receives a hash with the following properties:
         *   resourceId: Identifier string for the resource.
         *   data: Data provided by the user.
         *   success: Callback to invoke on success.
         *   error: Callback to invoke on error.
         */
        define(resourceId: string, resource: (settings: amplifyRequestSettings) => void): void;
    
        decoders: amplifyDecoders;
        cache: any;
    }
    
    interface amplifySubscribe {
        /***
         * Subscribe to a message.
         * topic: Name of the message to subscribe to.
         * callback: Function to invoke when the message is published.
         */
        (topic: string, callback: Function): void;
        /***
         * Subscribe to a message.
         * topic: Name of the message to subscribe to.
         * context: What this will be when the callback is invoked.
         * callback: Function to invoke when the message is published.
         * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
         */
        (topic: string, context: any, callback: Function, priority?: number): void;
        /***
         * Subscribe to a message.
         * topic: Name of the message to subscribe to.
         * callback: Function to invoke when the message is published.
         * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
         */
        (topic: string, callback: Function, priority?: number): void;
    }
    interface amplifyStorageTypeStore {
        /***
         * Stores a value for a given key using the default storage type.
         *
         * key: Identifier for the value being stored.
         * value: The value to store. The value can be anything that can be serialized as JSON.
         * [options]: A set of key/value pairs that relate to settings for storing the value.
         */
        (key: string, value: any, options?: any): void;
    
        /***
         * Gets a stored value based on the key.
         */
        (key: string): any;
    
        /***
         * Gets a hash of all stored values.
         */
        (): any;
    }
    
    interface amplifyStore extends amplifyStorageTypeStore{
    
        /***
         * IE 8+, Firefox 3.5+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
         */
        localStorage: amplifyStorageTypeStore;
    
        /***
         * IE 8+, Firefox 2+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
         */
        sessionStorage: amplifyStorageTypeStore;
    
        /***
         * Firefox 2+
         */
        globalStorage: amplifyStorageTypeStore;
    
        /***
         * IE 5 - 7
         */
        userData: amplifyStorageTypeStore;
    
        /***
         * An in-memory store is provided as a fallback if none of the other storage types are available.
         */
        memory: amplifyStorageTypeStore;
    
    
    }
    
    interface amplifyStatic {
    
        subscribe: amplifySubscribe;
    
        /***
         * Remove a subscription.
         * topic: The topic being unsubscribed from.
         * callback: The callback that was originally subscribed.
         */
        unsubscribe(topic: string, callback: Function): void;
    
        /***
         * Publish a message.
         * topic: The name of the message to publish.
         * Any additional parameters will be passed to the subscriptions.
         * amplify.publish returns a boolean indicating whether any subscriptions returned false. The return value is true if none of the subscriptions returned false, and false otherwise. Note that only one subscription can return false because doing so will prevent additional subscriptions from being invoked.
         */
        publish(topic: string, ...args: any[]): boolean;
    
        store: amplifyStore;
    
        request: amplifyRequest;
    
    }
    
    declare var amplify: amplifyStatic;
    

关于javascript - SPServices 的 TypeScript 定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044217/

相关文章:

sharepoint - 使用元数据搜索 SharePoint 结果

typescript - 仅在 node_modules 中跳过库检查

javascript - 使用 Angular 4上传文件

Angular 2 变化检测与 observables

javascript - 将数组从 php 传递到 javascript

javascript - 创建购物 list Web 应用程序

performance - 查询列表项和使用 SharePoint Web 服务与对象模型

c# - SharePoint:通过唯一 ID 获取 SPListItem

javascript - 我正在尝试使用 NVD3 重现示例,但不起作用

javascript - 如果(NULL),它会工作吗?