实用TS技巧(持续更新)

415 阅读1分钟

本文记录开发过程中,实际经常会碰到的、但是呢又不是那么容易从documents里一翻即用的知识点。希望对大家有帮助。

经常碰到的Cannot find module问题

例如:Cannot find module '@/assets/logo.png' or its corresponding type declarations.ts(2307)

ts它认识的模块,都得教吖,所以得声明模块类型。像框架中,就直接在typings.d.ts中添加:

declare module "*.png" {
  const value: any;
  export default value;
}

或者简写:

declare module '*.png'

组织目录也可以更清晰一些,譬如:

root
-typings
--custom
---import-png.d.ts

全局变量声明

当我们需要给window对象添加全局变量xxx(例如某埋点在模版html脚本中添加的全局变量_czc),会出现以下提示“类型'Window & typeof globalThis'上不存在属性xxx”。 产生类型报错的原因是因为window数据类型定义如下: declare var window: Window & typeof globalThis;

解决方案:在.d.ts中添加自定义属性声明,如下:

interface Window {
  _czc: string;
}