typescript 相同的代码导致不同项目中的错误

nfs0ujit  于 2023-01-06  发布在  TypeScript
关注(0)|答案(1)|浏览(132)

我目前正在使用Power BI Visuals API将我的D3和弦图转换为Power BI可视化。我一直使用Microsoft Chord GitHub Repo作为起始参考。我正在创建支持类,但即使我使用来自Microsoft repo的相同代码,我的版本也会返回错误。
具体来看一下'columns.ts'文件,当我从github复制代码时,我在'let varName:type = x'行表示undefined不能分配给DataViewTable类型。但是我从Microsoft克隆了整个存储库,当我直接导入它们的文件时,我没有得到这些错误。
代码完全相同。Cloned from GitHubCopied from GitHub to my project
我试过添加try catch语句、if else检查,也试过在可能的地方使用非空Assert操作符--但我仍然在返回null的函数中遇到问题,我只是不明白为什么同样的代码会在一个位置提供错误。

pbwdgjma

pbwdgjma1#

您可能在tsconfig.json中启用了strictNullChecks,而在this repo's tsconfig.json中似乎没有启用。

  • 注意:这也可能被列为strict,它启用strictNullChecks以及许多其他严格的类型检查标志 *

如果是这样的话,它们的配置将具有比您的配置更宽松的类型检查规则(当涉及到null/undefined检查时),从而有效地允许将nullundefined分配给任何其他类型,即使类型定义中没有显式地声明。
打字Playground:

  • strictNullChecks已启用
  • strictNullChecks已禁用

在这种情况下,您可以选择:

  • 还要禁用strictNullChecks并接受相同的宽松类型规则
  • 修改所讨论变量的本地类型,使其更具代表性(即在可以/应该处理这些值的变量定义中包含| null| undefined

相关问题