是否可以强制打字稿使用来自 DefinitelyTyped 的类型而不是本地库类型?

Is it possible to force typescript to use types from DefinitelyTyped instead of native lib types?

我正在尝试迁移到现在具有内置打字稿类型的 sequelize v5。我不太满意所述类型的编写方式:数据相关方法 (find/create/update/etc) 使用 "object" 作为数据值类型。 DefinitelyTyped 中的类型是使用泛型编写的,没有这样的缺点。

现在的问题是 typescript 编译器从 sequelize 中检测内置类型并忽略 DefinitelyTyped 类型。有没有办法改变这种行为?

提供解决方案:

在您的 .tsconfig.json 文件中:

{
  ...
  "compilerOptions": {
    ...
    "baseUrl": ".",
    "paths": {
       "*": [
         "types/*", // locally defined types
         "node_modules/@types/*" // DefinitelyTyped typings for applicable packages
       ]
    }
  }
  ...
}

这意味着编译器将首先在您的本地 /types 文件夹中查找,然后在 node_modules/@types/ 中查找,然后再求助于 lib-defined 类型。