function multiply(num: number): number {
console.log(num * 10) // NaN
return num * 10
}
multiply("not-a-number") // result == NaN
如果我试图通过硬编码无效参数类型来调用上述函数,那么Typescript会抱怨。这是预期的。
当动态传递参数时,我期待同样的事情。
const valueFromDifferentSource = "not-a-number"
multiply(valueFromDifferentSource) // result == NaN
而不是破坏代码。 Javascript继续执行代码并返回“Not-a-Number”NaN。
如何在运行时获取打字稿的静态类型?
答案 0 :(得分:2)
确保valueFromDifferentSource
也有输入:
const valueFromDifferentSource: number = "not-a-number"
TypeScript在运行时不执行任何操作。它将TypeScript编译为纯Javascript,并且在允许运行时检查的样板代码中添加任何内容。
答案 1 :(得分:0)
Typescript与运行时无关。但是有一个很好的库来控制变量类型https://github.com/hapijs/joi。您通常要做的是验证应用程序的所有输入数据(http请求,来自其他服务的响应,队列消息)。在编写代码的阶段内部进行此类验证和静态类型,应该可以满足您的需求并提高代码质量。