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

Posted

技术标签:

【中文标题】是否可以强制打字稿使用来自definitelyTyped 的类型而不是本机库类型?【英文标题】:Is it possible to force typescript to use types from DefinitelyTyped instead of native lib types? 【发布时间】:2020-09-05 22:42:33 【问题描述】:

我正在尝试迁移到现在具有内置打字稿类型的 sequelize v5。我对上述类型的编写方式并不满意:与数据相关的方法(查找/创建/更新/等)使用“对象”作为数据值类型。 DefinitelyTyped 的类型是使用泛型编写的,没有这样的缺点。

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

【问题讨论】:

您是否尝试在文件中添加参考?喜欢/// <reference types="mylib" /> 【参考方案1】:

This question提供解决方案:

在您的 .tsconfig.json 文件中:


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

这意味着编译器将首先在您的本地 /types 文件夹中查找,然后在 node_modules/@types/ 中查找,然后再使用 lib 定义的类型。

【讨论】:

以上是关于是否可以强制打字稿使用来自definitelyTyped 的类型而不是本机库类型?的主要内容,如果未能解决你的问题,请参考以下文章

打字稿:使用类型声明强制进行空检查?

打字稿定义无法导入Angular2

打字稿 - 强制值成为接口的属性

打字稿:强制执行泛型以强制使用某些键

打字稿:强制默认通用类型为“any”而不是“”

访问数组索引时如何强制打字稿给出错误