我有一个ReactJs project
,通过一个对象中的require
获取图像路径,这个对象有一个类型,img属性接收一个字符串,它可以工作,但问题是TS无法知道这个字符串是图像还是其他东西:
type Obj = {
img: string
}
// That's correct
const obj1 = {
img: require('./../img-path-here')
}
// That's not correct, but TS doesn't complain
const obj2 = {
img: './../img-path-here'
}
// That's not correct either, but TS doesn't complain
const obj3 = {
img: 'any string'
}
有没有办法键入img,让TS知道哪个值是真正有效的?
1条答案
按热度按时间az31mfrm1#
您可能希望将
require
Package 在一个函数中,该函数执行一些运行时类型检查。require
无论如何都会返回any
。如果
img
字段的类型是一个datauri,那么它就很简单,你可以把它表示为一个类型:如果它是一个路径,那么在运行时检查它是否有效的方式取决于您和您的偏执程度,也许您只想确保使用了
require
,那么您可以跳过检查,但基本上是相同的过程: