使用 typescript 寫 jQuery 插件


/// <reference path="jquery/jquery.d.ts" />

export class Carousel {
    constructor(
        public element: JQuery,
        options?: CarouselOptions
    ) {
        this.options = $.extend({}, CarouselDefaultOptions, options)
    }

    public options: CarouselOptions;
    
}

export interface CarouselOptions {
     range?: number,
     itemTag?: string,
     boxTag?: string,
     animationTime?: any,
     animationMode?: string
}

/**
* 默認設置
*/
class CarouselDefaultOptions implements CarouselOptions {
     itemTag: string = 'li';
     boxTag: string = '.box';
     animationTime: any = '1s';
     animationMode: string = 'slow';
}

carousel.ts

我打算做一個圖片輪播的插件,上面是插件的主體, 分為三部分:

第一部分: class Carousel     插件具體功能實現,

第二部分:interface CarouselOptions 配置的接口,在js中無用,這里只是為了以后 TS 使用方便,方便智能提示和書寫,

第三部分:class CarouselDefaultOptions 默認配置

 

/// <reference path="jquery/jquery.d.ts" />
import { Carousel, CarouselOptions } from './carousel';

 ;(function($: any) {

  $.fn.Carousel = function(options ?: CarouselOptions) {
    return new Carousel(this, options); 
  };
  
})(jQuery);

interface JQuery{
    Carousel(options ?: CarouselOptions) : any;
}

jquery.carousel.ts

這里主要是實現接入jQuery.

 

--- 用typescript 寫 js 一目了然


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM