我正在使用打字稿在React应用程序中工作。其中一个函数在其中一个变量中接收通用类型。
如何检查变量的类型T?这可能吗?
MyFunction<T>(newValues: Array<T>) {
if (typeof T === "string") {
// do some stuff
}
}
答案 0 :(得分:1)
嗯,有可能。您可以使用user defined type guards在运行时检查对象的类型。请记住,您正在检查参数的类型,而不是常规类型T
本身。理想情况下,您的函数应该在不确切知道T
是什么的情况下工作,而只是在调用该方法时将其用作占位T
的占位符。
但是,您需要注意,因为在尝试区分两个或多个已知类型时(而不是在确定泛型的类型时)会使用类型保护。
请记住,如果需要确定泛型的类型,则实际上可能不需要泛型。如果您知道可以调用一个函数的可能类型是什么,并且这些类型很重要,我建议您研究union types。
TypeScript的意图不是在运行时更改JavaScript,而是使工具和开发人员更容易使用JavaScript进行开发。 TypeScript的所有魔力都应该在代码发送到浏览器之前发生。
希望有帮助!