Typescript 阻止接口具有名为X的属性
我有这个界面:Typescript 阻止接口具有名为X的属性,typescript,interface,Typescript,Interface,我有这个界面: interface Config { height : number; width : number; [propName : string] : any; } 正如您所看到的,我有[propName:string]:any,它允许我拥有任何其他属性,但我需要禁止使用name键的属性 换句话说,我希望允许除key以外的任何其他属性。您可以添加其他属性key?:未定义到Config: 注意:从不替换为未定义,因为未定义|从不解析为未定义,所以最后没关系。哈
interface Config {
height : number;
width : number;
[propName : string] : any;
}
正如您所看到的,我有[propName:string]:any,它允许我拥有任何其他属性,但我需要禁止使用name键的属性
换句话说,我希望允许除key以外的任何其他属性。您可以添加其他属性key?:未定义到Config:
注意:从不替换为未定义,因为未定义|从不解析为未定义,所以最后没关系。哈哈,你是对的。我想写一些像type Config={…}&而不是{key:any}这样的带有否定类型的东西。如果还必须排除key:undefined,那么可能需要引入一个带有键检查条件类型的类型参数,并在函数中使用该类型
interface Config {
height: number;
width: number;
key?: undefined; // add this line
[propName: string]: any;
}
const res1: Config = { height: 3, width: 4, me: "too" } // works
const res2: Config = { height: 3, width: 4, me: "too", key: "dsaf" } // error