我试图输入一个对象,使它的键都是一个特定的类型,但在这样一种方式下,我仍然得到intellisense当我访问的主要对象。
interface ObjectWithKeysOf<T>
{
[key: string]: T;
}
const TEST: ObjectWithKeysOf<number> =
{
prop1: 1,
prop2: 2
};
鉴于上述情况,我希望下面的代码能够正常工作,但是它没有工作。Intellisense不建议将prop1
作为属性,并且代码无法编译。
const aNumber = TEST.prop1;
这可能吗?
1条答案
按热度按时间qzlgjiam1#
您可以使用
satisfies
运算子(在TypeScript v4.9
中引入)来限制型别,同时保留其特定信息(包括IntelliSense自动完成):在TS Playground中试用:
相同的示例,但结合了
const
Assert:TSPlayground
另请参阅类型实用程序
Record<Keys, Type>
。