你还在头疼的`eslint`,`tsconifg.json`其实很好玩

你还在头疼的`eslint`,`tsconifg.json`其实很好玩

二月 17, 2021 本文共计: 377 字 预计阅读时长: 1分钟

前言

typescript是一个让人用习惯了就无法自拔的工具,作为javascript的类型扩展工具,可以让本是弱类型的javascript拥有强类型约束,
在编译期间报错,提示开发者类型是否符合约束,可以在开发期间和后期的维护期间起到很好的作用。

问题

可能大多数人,看到一些配置文件都会各种头疼,其实完全没必要虚的,因为配置就是一个查阅文档的过程,没有人会全部记住它,用到什么配置就加一下,
不过一些常用的配置是需要知道的。

我遇到了什么问题,我要解决什么问题?

  • 当在项目中引入非ts文件或者没有d.ts声明的时候,编辑器报warning怎么办?
  1. 第三方包且拥有types包的,下载对应的@types/packageName

  2. 第三方包或者私有库的包,如果没有types,需要手动为包补全d.ts,或者是在项目的src目录下添加@types文件夹,定义definition.d.ts

  • 当项目中某些新特性不支持或者window下的某些参数,报错怎么处理?
  1. 添加declare
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* @desc 手动声明 es2018 PromiseConstructor finally
*/
interface PromiseConstructor {
finally: () => void;
}

/**
* @desc 手动声明 es2016 ObjectConstructor assign
*/
interface ObjectConstructor {
assign(...objects: Record<string, any>[]): Record<string, any>;
}

/**
* @desc 手动声明 Window 全局对象 propTypes
*/
interface Window {
[key: string]: any;
}

declare module '*.png'
declare module '*.jpg'