【问题标题】:Find type of an unknown objects查找未知对象的类型
【发布时间】:2022-01-25 23:27:39
【问题描述】:

有时您需要使用并非使用 typescript 构建的包。例如,我在打开严格模式的 react + typescript 项目中使用 two.js 包。我发现很难正确键入每个变量,因为我不知道很多函数返回什么。

如果我使用any 或不提及类型,我会收到诸如变量implicitly has an 'any' type 之类的恼人错误,感觉就像我一直在与编译器斗争,而不是专注于我的工作。

许多其他语言都有一些函数/关键字,可以为您提供对象所基于的确切类/类型。但在 javascript 中,typeofinstanceof 完全没用,因为您只能使用它们来检查 if 对象是否属于某个类。而typeof 只是为任何自定义对象返回object

我喜欢打字稿,但这很烦人。我该如何解决这个问题?我尝试在网上搜索,但找不到解决此问题的可靠方法。

【问题讨论】:

  • typeof 应该将类型作为字符串返回给你,只是 console.log 它不是吗?
  • @laenNoCode 不,它只是说“对象”
  • 我猜它是 stackoverflow.com/questions/13613524/… 的副本,解决方案是使用“.constructor.name”
  • @laenNoCode 以及如何获取函数的返回类型?
  • 也许只运行一次。有些取决于库是否是打字稿库,vscode(或其他一些编辑器)可能会为您提供它的文档。否则,请检查文档(如果有)。我就是这样做的

标签: typescript types


【解决方案1】:

如果我使用 any 或不提及类型,我会收到恼人的错误,例如变量 implicitly has an 'any' type

消息说明有问题的变量没有明确的注释。如果您明确注释/断言any,则不会发生这种情况。


如果你想保持你的程序类型安全,你唯一的选择是

TypeScript 没有其他方法可以知道导入的类型是什么,因为 TS 是一个 staticstructural 类型检查器,其目的是帮助保持程序类型安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 2021-11-16
    • 1970-01-01
    • 2021-07-13
    • 2016-06-29
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多