我正在JSON-Schema-faker project处理我们使用以下TypeScript接口的地方:
interface IGeneratorSchema {
faker?: any;
chance?: any;
}
对象如下:
{
"faker": "name.findName"
}
要么:
{
"chance": {
"bool": {
"likelihood": 100
}
}
}
现在我们需要引入对x-faker
和x-chance
字段的支持,这些字段在语义上与faker
和chance
相同,例如:
{
"x-faker": "name.findName"
}
要么:
{
"x-chance": {
"bool": {
"likelihood": 100
}
}
}
我知道我可以在TypeScript界面中创建x-faker
和x-chance
字段。 问题是 - 我该如何克服这一点?我希望TypeScript严格只允许这四个字段:faker
,chance
,x-faker
,{{1} }。
答案 0 :(得分:1)
我希望TypeScript严格只允许这四个字段:faker,chance,x-faker,x-chance
您可以声明字符串属性:
interface IGeneratorSchema {
faker?: any;
chance?: any;
"x-faker"?: any;
"x-chance"?: any;
}
const foo:IGeneratorSchema = { "x-faker": {} } // Okay
const bar:IGeneratorSchema = { bad: {} } // Error: unknown property
仅在新的对象文字场景中阻止额外成员:https://basarat.gitbooks.io/typescript/content/docs/types/freshness.html