我正面临以下问题,我不确定如何处理它。我想给另一个对象的字符串属性指定一个属性的名称。然而,在这种情况下,我不确定如何使用key of。
我设法使用了“验证”函数,只是为了避免编译错误,但我想跳过声明一个什么也不做的函数。有什么想法吗?

发布于 2018-06-01 18:46:23
类型断言是为了让你做一些编译器认为是无效的事情。只需显式声明const的类型:
interface IGame { id: number}
const incalidColumn: keyof IGame = 'invalild' // error
const validColumn: keyof IGame = 'id' 发布于 2018-06-01 19:07:33
为了将类型检查从JS输出中分离出来,可以使用与this answer相同的方法:
type CheckGameProp<T extends keyof IGame> = T;
const invalidColumn = "invalidColumn";
{ type _checkGameProp = CheckGameProp<typeof invalidColumn>; }
const validColumn = "id";
{ type _checkGameIdProp = CheckGameProp<typeof validColumn>; }可以限定_checkGameIdProp伪类型的作用域,以避免类型名称选择方面的问题。
根据invalidColumn和validColumn的使用方式,最好检查它们的使用位置。
https://stackoverflow.com/questions/50641673
复制相似问题