запретить интерфейсу иметь свойство с именем X - PullRequest
1 голос
/ 12 января 2020

У меня есть этот интерфейс:

interface Config {
    height : number;
    width : number;
    [propName : string] : any;
}

, как вы можете видеть, у меня есть [propName : string] : any, который позволяет мне иметь любые другие свойства, но мне нужно запретить свойство с именем key, например.

другими словами, я хочу разрешить любое другое свойство, кроме key

1 Ответ

3 голосов
/ 12 января 2020

Вы можете добавить дополнительное свойство key?: undefined к Config:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...