Typescript: объявление слияния объявлять переменную как интерфейс - PullRequest
0 голосов
/ 03 мая 2020

У меня есть класс и интерфейс с одинаковыми именами. Например, см. Код ниже:

export interface option {
    name: string;
    tip: string;
}

export class option {
    constructor() {
    };

    someMethod(){};
}

Сначала я хочу создать вручную параметр.

export const test:option = 
{
    name:"hello",
    tip:"hi",
}

Но я получаю Property 'someMethod' is missing in type '{ name: string; tip: string; }' but required in type 'option' В данном конкретном случае я не хочу добавить метод, потому что позже в разработке он будет проанализирован JSON. Я планирую создать new option() и использовать Object.assign() для объединения данных и методов.

Существует ли явный способ сообщить компилятору, что я хочу использовать определение интерфейса option, а не определение класса в этом случае? Конечно, я хотел бы сохранить проверку TS для export const test:option...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...