我有以下定义:
POST
现在我想创建一个使用[{id: 1, name: 'max'}, {id: 2, name: 'jhon'}, {id: 3, name: 'anna'}]
作为参数的函数:
interface Dog {
bark(): void;
type: 'dog';
}
interface Cat {
meow(): void;
type: 'cat';
}
type Animal = Cat | Dog;
在此示例中,我使用了Animal.type
,但我的意思是function useAnimalType(type: string) {}
。我意识到我可以写出所有可能string
的{{1}},但想象一下'cat' | 'dog'
中定义了数百种动物类型的情景。如何在此处重复使用type
作为参数?
答案 0 :(得分:12)
您可以使用括号表示法检索其他对象类型中的字段类型。举个例子,简单地说:
function useAnimalType(type: Animal["type"]) {}
就足够了。在这种情况下,Animal["type"]
被推断为"cat" | "dog"
。