我在TypeScript中使用了大量的隐式any。我不太明白如何破译一个TSD文件,以获得正确的类型时,建立一个库,如快递或角。是否有一种方法可以在运行时了解某物的类型,以便我可以在以后返回并填写该类型?或者,还有其他方法可以根据现有代码来确定类型吗?
发布于 2018-08-18 15:50:09
是否有一种方法可以在运行时了解某物的类型,以便我可以在以后返回并填写该类型?
TypeScript使用类型擦除,并且在运行时不运行:
当前关于向JavaScript添加渐进式类型的建议,如闭包、TypeScript和Dart,放弃了安全性,以处理规模、代码重用和流行的编程模式等问题。
使用另一种方法,例如:
JS++®引入了第一个也是唯一一个与JavaScript兼容的类型系统,它是可选的和“声音”的。换句话说,如果您选择声明变量的类型,那么在编译时检查和运行时执行期间,即使您使用的是“非类型化”JavaScript库,它也始终是正确的。
JavaScript提供了五种方法:typeOf和instanceOf、isPrototypeOf、constructor和Object.getPrototypeOf:
typeof 1;
/foo/ instanceof RegExp
Error.isPrototypeOf(ReferenceError)
this.constructor
Object.getPrototypeOf(NaN)发布于 2018-12-18 20:19:14
如前所述,TS只有类型的模型,只有编译时间。如果您打开生成的js文件,您将很好地理解在运行时什么是“剩下的”和可见的。
您的挣扎似乎源于这样一个问题:当您无法知道它们的方法返回或期望的类型时,您正在使用的是库,这就是我所不愿看到的。您使用的是哪个IDE或编辑器?VSCode或Atom (甚至Emacs)对类型枕木具有优秀的智能感知。
tsd文件有点混乱,导入类型对我来说还有点神奇,但是仅仅阅读原始的libfefs仍然可以让您对最常见的类型有足够的了解。
https://softwareengineering.stackexchange.com/questions/309908
复制相似问题