抖音小程序clearInterval在TS环境下报错及解决方案

326 阅读2分钟

start

问题的原因是我将微信小程序的环境搬家到抖音小程序以后,发现在Ts环境下,抖音的clearInterval

这个函数在调用时会报错,我立马就发现了不对劲,然后经过一路的调试,发现了问题的原因及解决方案。

调试问题

首先,clearInterval 这个API调用应该是没有什么问题的,这么重要的API如果都没有,那项目将不敢想象,所以我尝试在控制台打印这个clearInterval函数,发现是可以打印出来的

既然可以打印出来,那么就说明抖音小程序已经内置了这个函数,调用是有效果的,既然调用有效果,那么原因估计就是抖音小程序的泛型定义这一块的问题,所以我里面将问题转移到小程序的泛型上,

将鼠标挪动到clearInterval上面时,按住ctrl键没有反应,这个时候在上面输入一个定时器函数

按住ctrl键有反应,那么直接点进去,点进去以后的文件就是定时器泛型定义的文件:

看到这里,一下子就明白了,这里面缺少了clearInterval的泛型定义,所以开发者工具会出现报错,所以只要在这个文件下添加泛型就可以解决了:

declare global {
  const App: AppConstructor;
  const getApp: GetApp;
  const Page: PageConstructor;
  const getCurrentPages: GetCurrentPages;
  const Component: ComponentConstructor;
  const Behavior: BehaviorConstructor;
  const tt: typeof API;
  const console: console;
  const setInterval: setInterval;
  const setTimeout: setTimeout;
  const clearInterval: any;
}

回到项目里面,这个时候在代码里面输入clearInterval就不会发生报错了

end

好了,上面的内容就是clearInterval在ts环境下报错的原因及解决方案了,希望官方能够早点修复这个问题,最好把小橙子的TS+Sass的项目搬家到抖音小程序里面的时候,可以完美实现搬家,谢谢大家观看。