Ошибка ts2300: повторяющийся идентификатор «a». но есть только одно объявление класса a

Вот очень простой машинописный код в файле test.ts

// Testing
//
class A {
   private field1;
   config;
    constructor() {
            this.field1 = undefined;
            this.config = undefined;
    }
};

function func() {
    const config = new A();
    return { config };
};

const { config: A } = func();

Я использовал npx tsc test.ts для компиляции вышеупомянутого, и я получил эти сообщения об ошибках

test.ts(3,7): error TS2300: Duplicate identifier 'A'.
test.ts(17,17): error TS2300: Duplicate identifier 'A'.

Что не так с кодом? Откуда дубликат?

stackoverflow.com/questions/31322525/…
Sajeetharan 26.10.2018 04:39

Непригодный. Я явно предоставил файл tsc

Anthony Kong 26.10.2018 04:44
0
2
150
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

const { config: A } = func();

В этой строке говорится, что вы ожидаете, что func() вернет объект со свойством config, и вы пытаетесь присвоить это значение новой константе с именем A, но вы уже определили A как класс

Спасибо! Я подумал, что могу использовать :A, чтобы указать тип данных переменной config. Итак, как я могу ограничить тип config?

Anthony Kong 26.10.2018 04:46

config должен включаться автоматически. const { config } = func(); должен автоматически создавать конфигурацию типа A. Но если вы хотите явно указать тип, вам нужно будет сделать: let config: A; ({config} = func ());

Greg Hornby 26.10.2018 04:50

Потрясающие! Это именно то, что я ищу!

Anthony Kong 26.10.2018 05:00

Другие вопросы по теме