-
不能将类型“Timeout”分配给类型“number”。
调用 setInterval 或者 setTimeout 的返回值在 Typescript 中默认并不是一个 number 类型,所以要手动将这两个方法绑定到 window 对象上,window 对象的 setInterval 和 setTimeout 返回的是 number。代码如下:
const timer = window.setTimeout(() => {}, 3000); const timer = window.setInterval(() => {}, 3000); -
当使用的第三方库没有 ts 声明文件时,当在 tsx 文件中通过 import 引入这个库时,会提示 找不到模块 xxx 或其相应的类型声明。
首先需要在 tsconfig.json 中增加如下配置:
{ "compilerOptions": { "typeRoots": [ "./@types", "./node_modules/@types" ] }然后同目录下新建 @types 文件夹,文件夹内新建文件 xxx.d.ts 文件,增加声明模块语句
declare module "xxx"。以下是在 tsx 文件中 import 图片时,需要添加图片模块声明文件:declare module "*.png"; declare module "*.svg"; declare module "*.jpg";常用的还有一些定义在 window 对象上的自定义方法和对象的声明,如下:
interface Window { MPing?: any; // 自定义对象 goToARStreet: (isJDApp: boolean) => void; // 自定义方法 }