出现的问题
想在所有ts/tsx中引用一个辅助函数。(使用import太麻烦而且使用频率很高)。
解决方案(解决不完整)
使用webpack
webpack倒是可以利用resolve创建全局变量引用,但是利用这种黑科技也不能算解决问题吧?
挂载window
看到whatwg-fetch的源码和@types/whatwg-fetch是使用的这种方案,但是我为了这种使用方式要去发布一个npm包,还要去写一个d.ts文件么?(有点扯淡)
global.d.ts
看到typescript中有global.d.ts,但是官方给出的例子都是对全局对象/方法的类型抽象。
例如:
declare namespace myLib {
function encodechar(data: any, opts?:any)
}
myLib的确作为了全局,但是实现的方法在哪实现?
刚开始接触typescript,基本属于小白,求不吐槽-。-
谢谢回答~
补充
2017.2.20 add
最近研究了一下typescript总算是有些深刻的理解。毕竟是个强语言类型检测。对于上文中如何实现global.d.ts做出解答。
global.d.ts是对ts文件的一个类型或者说全局的检测。在tsconfig可以设置文件检测范围。
当然即使在ts文件中实现你需要的方法(例如:encodechar),其实也没用。
只是你的IDE检测到有这么个全局方法的是现实,因此IDE不会报错。但是如果妄想让typescript转成js的时候帮你再引入这个全局方法,你就想多了!运行时会报is not defined
!
如果解决这个问题的话请参照之前写的前两条webpack(Resolve alias)、挂载window(挂载到全局就不怕找不到了-。-)
最近研究了一下typescript总算是有些深刻的理解。毕竟是个强语言类型检测。对于上文中如何实现global.d.ts做出解答。
global.d.ts是对ts文件的一个类型或者说全局的检测。在tsconfig可以设置文件检测范围。
当然即使在ts文件中实现你需要的方法(例如:encodechar),其实也没用。
只是你的IDE检测到有这么个全局方法的是现实,因此IDE不会报错。但是如果妄想让typescript转成js的时候帮你再引入这个全局方法,你就想多了!运行时会报is not defined!
如果解决这个问题的话请参照之前写的前两条webpack(Resolve alias)、挂载window(挂载到全局就不怕找不到了-。-)