创建对象/函数的实例将 JavaScript 转换为 TypeScript

比兹古·丹妮拉

有了这个功能,我需要创建它的一个新实例。在 JavaScript 中一切正常,但如何将其转换为 TypeScript?

function Calendar(selector, events) {
          this.el = document.querySelector(selector);
          this.events = events;
          this.current = moment().date(1);
          this.draw();
          var current = document.querySelector('.today');
          if(current) {
            var self = this;
            window.setTimeout(function() {
              self.openDay(current);
            }, 500);
          }
        }

var calendar = new Calendar('#calendar', data);

var calendar = new Calendar('#calendar', data);

杰卡兹

确实,任何在 JavaScript 中工作的东西都可以在 TypeScript 中工作,但这只是意味着 TypeScript 编译器或多或少会原封不动地输出你的 JavaScript,可能会在途中吐出一堆警告。如果您只是忽略错误,事情仍然会奏效。

但是假设您想利用 TypeScript 的强大功能,您应该开始改变事情。开始吧。


首先,您应该在您的项目中安装来自 Moment.js的类型,可能是npm install moment从您的项目文件夹中运行

然后,我通常喜欢打开所有--strictXXX编译器标志(我认为您可以只使用--strict)来获得最大数量的警告以忽略和/或修复。

好的,现在:可构造事物的 ES6/TypeScript 习惯用法是使用class. 下面是我所做的一些修改,以及一些内联注释:

import * as moment from 'moment';

class Calendar {
  // a Calendar has an el property which is a possibly null DOM element:
  el: Element | null; 
  // a Calendar has a current property which is a Moment:
  current: moment.Moment;
  // a Calendar has an events property which is an array of Event:
  events: Event[];

  // the constructor function is what gets called when you do new Calendar()
  // note that I assume selector is a string and events is an array of Event
  constructor(selector: string, events: Event[]) {
    this.el = document.querySelector(selector);  
    this.events = events;  
    this.current = moment().date(1);
    this.draw(); 
    var current = document.querySelector('.today');
    if (current) {
      var self = this;
      window.setTimeout(function() {
        self.openDay(current); 
      }, 500);
    }
  }

  draw() {
    // needs an implementation
  }

  openDay(day: Element | null) {
    // needs an implementation
  }
}

declare let data: Event[]; // need to define data
var calendar = new Calendar('#calendar', data);

您需要实现draw()openDay()它们可能的部分方法Calendar.prototype我把存根放在那里。您还需要定义data,它是(我猜)一个事件数组(如果是其他事情,您需要更改events.

如果您查看上面编译的 JavaScript 输出,您会发现它或多或少与您所拥有的相同。但是现在,当然,TypeScript 很高兴让您调用new Calendar(...).


当然,您还可以进行更多更改。例如,您可以使用参数属性并删除该this.events = events;行。或者,您可以使用属性初始值设定项并将其this.current = ...移出constructor函数并移入属性声明中。等等。

但这应该足以让你开始。祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何自动将TypeScript转换为JavaScript?

来自分类Dev

Typescript或JavaScript将嵌套的对象数组转换为键,值对

来自分类Dev

Typescript/Javascript:将对象数组转换为键值对

来自分类Dev

使用RxJS / TypeScript / JavaScript将行转换为列

来自分类Dev

将Javascript成员变量转换为Typescript成员变量

来自分类Dev

将JSInterop的ExampleJsInterop JavaScript代码转换为TypeScript

来自分类Dev

逐步将React Native Javascript +流项目转换为Typescript?

来自分类Dev

使用RxJS / TypeScript / JavaScript将行转换为列

来自分类Dev

将枚举从 Typescript 转换为 JavaScript 时出错

来自分类Dev

最佳实践/唯一的可能性。“通过构造函数将 Json 转换为 Javascript / Typescript 对象”

来自分类Dev

将JavaScript函数转换为

来自分类Dev

为什么javascript / typescript隐式将日期对象转换为字符串?

来自分类Dev

将CoffeeScript转换为TypeScript

来自分类Dev

将 TypeScript 转换为 Node

来自分类Dev

Typescript名称空间转换为Javascript

来自分类Dev

Visual Studio Typescript转换为JavaScript

来自分类Dev

在javascript / typescript中将Element转换为HTMLElement

来自分类Dev

Typescript名称空间转换为Javascript

来自分类Dev

将Javascript对象转换为Javascript数组

来自分类Dev

将javascript对象转换为json对象

来自分类Dev

将数组的对象转换为对象javascript

来自分类Dev

将javascript对象转换为json对象

来自分类Dev

javascript,将函数转换为函数

来自分类Dev

将Javascript函数转换为AngularJS函数

来自分类Dev

javascript,将函数转换为函数

来自分类Dev

Javascript将函数转换为箭头函数

来自分类Dev

如何将AngularJS Javascript控制器转换为Typescript?

来自分类Dev

从JavaScript函数转换为jQuery

来自分类Dev

将JSON对象转换为javascript数组

Related 相关文章

  1. 1

    如何自动将TypeScript转换为JavaScript?

  2. 2

    Typescript或JavaScript将嵌套的对象数组转换为键,值对

  3. 3

    Typescript/Javascript:将对象数组转换为键值对

  4. 4

    使用RxJS / TypeScript / JavaScript将行转换为列

  5. 5

    将Javascript成员变量转换为Typescript成员变量

  6. 6

    将JSInterop的ExampleJsInterop JavaScript代码转换为TypeScript

  7. 7

    逐步将React Native Javascript +流项目转换为Typescript?

  8. 8

    使用RxJS / TypeScript / JavaScript将行转换为列

  9. 9

    将枚举从 Typescript 转换为 JavaScript 时出错

  10. 10

    最佳实践/唯一的可能性。“通过构造函数将 Json 转换为 Javascript / Typescript 对象”

  11. 11

    将JavaScript函数转换为

  12. 12

    为什么javascript / typescript隐式将日期对象转换为字符串?

  13. 13

    将CoffeeScript转换为TypeScript

  14. 14

    将 TypeScript 转换为 Node

  15. 15

    Typescript名称空间转换为Javascript

  16. 16

    Visual Studio Typescript转换为JavaScript

  17. 17

    在javascript / typescript中将Element转换为HTMLElement

  18. 18

    Typescript名称空间转换为Javascript

  19. 19

    将Javascript对象转换为Javascript数组

  20. 20

    将javascript对象转换为json对象

  21. 21

    将数组的对象转换为对象javascript

  22. 22

    将javascript对象转换为json对象

  23. 23

    javascript,将函数转换为函数

  24. 24

    将Javascript函数转换为AngularJS函数

  25. 25

    javascript,将函数转换为函数

  26. 26

    Javascript将函数转换为箭头函数

  27. 27

    如何将AngularJS Javascript控制器转换为Typescript?

  28. 28

    从JavaScript函数转换为jQuery

  29. 29

    将JSON对象转换为javascript数组

热门标签

归档