Я пытаюсь отладить странную проблему, с которой я сталкиваюсь в TypeScript 3.1, Babel 7 и Webpack 4, где это работает только тогда, когда я создаю объект вручную.Вот пример (псевдокод):
B (см. Ниже) :
const objectOfObjects = {...}
const someKeys = ['key1', 'key2', 'key3']
someKeys.filter(key => {
const i = new Foo(objectOfObjects[key]['somePropName'], /* subsequent props */);
console.log(i); // when I inspect the object here values are set correctly
return predicate(i);
});
Но вместо того, чтобы вводить это ввручную objectOfObjects[key]['somePropName']
для каждого свойства я просто передаю объект данного интерфейса TypeScript и передаю его конструктору и позволяю ему Object.assign его.
A (см. Изображение ниже) :
const objectOfObjects = {...}
const someKeys = ['key1', 'key2', 'key3']
someKeys.filter(key => {
const i = new Foo(objectOfObjects[key]);
console.log(i) // this does also return and object, but with all props undefined
return predicate(i);
});
Foo расширяет следующий базовый класс
class FooBase {
constructor(o: IFoo) {
if (o) {
Object.assign(this, o);
}
}
}
КогдаЯ делаю очень простой пример, который, кажется, работает, но, несмотря ни на что, когда я передаю objectOfObjects[key]
конструктору Foo в моем реальном приложении, я получаю это:
Поскольку я прошел через это и попытался найти изменения в objectOfObjects[key]
, единственное отличие, которое я могу вспомнить, это то, что я выделил на изображении выше - маленькие буквы "e" и "t" простослева от объекта в хромированной консоли.Я не смог найти какую-либо документацию в поиске Google, так что, надеюсь, кто-то из вас знает, что это значит, и, надеюсь, это также может указать на то, что я здесь делаю неправильно.