[Typescript] Step5. Local types override

Step5. Local types override

You can find many @types package along with the library you use. But the problem is that those @types might contain bugs because lack of active mantiance. 

Therefore we need a way to override those types bug locally.

 

1. Create a folder types under root  

2. Update tsconfig.json file

  "compilerOptions": {
    ...
    "baseUrl": ".",
    "paths": {
      "*": ["types/*"]
    }
  },

What it means is that: When typescript looking for type definations. If we have paths with baseUrl, in our compilerOptions, Typescript will searching for the types from our local first. If it found types, then will use our local types. If typescript didn't find types, then will continue searching from npm_modules.

3. For example, you want to update react type definations. 

  1. You can create a copy of original type definiations file into your types folder: types/react/index.d.ts
  2. Then add/update/remove the types based on your needs.

4. Update global if you need to:

//index.d.ts
declare global {
    const Electron: any
}

Debugging tips:

1. If you turn on "traceResolution": true, then output the compile information into a txt file, you can see where typescript find types information.

tsc > output.txt

2. Those types folder won't be appear in production build. You can delete the types folder once problem was fixed in @types
posted @ 2022-08-30 15:02  Zhentiw  阅读(14)  评论(0编辑  收藏  举报