工作日志

来源:互联网 发布:数据标准化 人民银行 编辑:程序博客网 时间:2024/06/07 00:50

今天大概看了下typescript,然后尝试着用它写了一个TCP server的程序。其中有这么一段程序比较有趣。

class a {  methodA(){    do something  }  methodB(){    var server = net.createServer((socket) => {      socket.on('data', () => {        this.methodA();      }    });  }}

开始并不是这么写的,回调函数用的是这种写法

    var server = net.createServer(function(socket) {      socket.on('data', function() {        this.methodA();      }    });

这样写this.methodA是找不到的。因为这时候this指代的并不是class a。问题是为什么用了第一种写法this就可以指代class a了,不太明白。看了下typescript编译成的js代码,在methodB中会声明一个_this=this。然后在回调函数中使用_this.methodA()。
typescript中声明的变量、函数类型只会在编译过程中进行检查,运行时其实并不做检查(也没法进行检查)。目前感觉使用typescript可以简化类的开发。
另外,在typescript中直接引用nodejs的包是会报找不到module错误的(起码在vs code中会报这个错误,没有编译不知道编译会不会报这个错误)。必须要安装npm install –save-dev @types/node。

0 0
原创粉丝点击