最近将部分Javascript迁移到Typescript,正遇到一些模块要生成定义文件。于是使用比较推荐的dts-gen,生成的过程遇到不少错误,例如:
ReferenceError: navigator is not defined
ReferenceError: window is not defined
ReferenceError: document is not defined
ReferenceError: FormData is not defined
难道还是得手写?我只是要生成个导出定义,不知道这工具要瞎分析个啥。仔细看一下,大致的问题,就是这些东东都是浏览器层面的东西,NODEJS不认识。于是乎,临时在头部需要加上一些代码,用来“蒙骗”工具去生成接口,例如头部添加了这些定义
var window = window || {}; // 解决不识别window
var document = document || {scripts: []}; // 解决不识别document和document.scripts
var navigator = navigator || {userAgent: '', vendor: ''}; //解决不识别navigator的userAgent和vendor
global.FormData = class FormData {}; // 解决不识别FormData数据类型
这样就好使了,本次遇到的只是给lrz图片压缩工具生成定义,其他生成定义的情况也差不多这样解决就好