typescript - 将 typescript 中的 "noImplicitAny"设置为 false 会禁用类型检查吗?

标签 typescript

Typescript 在 javascript es6 之上添加了许多功能,我对静态类型private/public/protected 关键字很感兴趣。

到目前为止,Typescript 编译器施加的最大限制是无法使用没有类型定义文件 (.d.ts) 的 javascript 库。

通过将 "noImplicitAny" 选项设置为 false,我们能够针对没有类型定义的库 ( cheerio ) 进行编译,但我担心这会允许在我们的项目代码中隐式任何

由于 DefinitlyTyped,cheerio 以及许多其他 javascript 库已经有了类型定义。项目,但我无法预测我们何时需要没有可用类型定义的 javascript 库。

当需要时,我们必须将 "noImplicitAny" 设置为 false这会有效地禁用部分或全部编译时类型检查吗?

最佳答案

为没有类型定义的库编写类型定义很容易 ( example ):

// somelib.d.ts
declare module "somelib" {
  const lib: any;
  export = lib;
}

现在您可以导入模块并以您喜欢的方式使用它,而不会出现类型检查错误,也不会丢失其他地方的类型检查:

import * as somelib from "somelib";
somelib.doSomething();

你显然甚至可以写一个 catch-all wildcard for all libraries (我没有亲自尝试过):

declare module "*";

关于typescript - 将 typescript 中的 "noImplicitAny"设置为 false 会禁用类型检查吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48790309/

相关文章:

javascript - 无法读取未定义 TypeError 的属性 'subscribe'

typescript - 是否有谷歌闭包库的 typescript 定义文件?

angular - 将大 reducer 拆分为更小的 reducer

javascript - 如何找到mat-table的索引并执行函数

javascript - 在 IE11 上运行 Angular 5 应用程序时参数无效

typescript - Vue 基于类的组件扩展和混合

javascript - vscode-test 设置中的 runTest.ts 类即使在示例项目中也从未使用过,它有什么用?

未定义中的 typescript 错误(未定义,未定义)

javascript - 按枚举名称而不是值对数组进行排序

javascript - 有没有办法从函数内定义的变量获取信息?