#typescript #object
#typescript #объект
Вопрос:
В TypeScript я знаю, что мы можем определять переменные как object
типы следующим образом.
let myObject: object;
myObject = { name: 'Khabib', age: 32 };
Если я хочу также аннотировать свойства, я бы сделал следующее.
let myObject: { name: string; age: number };
myObject = { name: 'Khabib', age: 32 };
Однако я не аннотировал myObject
явно как object
. Как я могу аннотировать myObject: object
, а также отдельные свойства? Итак, в принципе, как мне объединить следующее в один оператор? Или это невозможно?
let myObject: object;
myObject: { name: string; age: number };
Комментарии:
1. { } , разве это не гарантирует, что она является объектом?
2. В ванильном JavaScript я бы предположил то же самое. Тем не менее, я только начал изучать TypeScript, и, похоже, у меня есть возможность явно аннотировать переменную с
object
помощью . Итак, мне просто интересно, как бы я сделал то же самое при определении типов свойств.3. В общем, typescript пытается отвлечь вас от размышлений о вещах просто как об «объекте», и вместо этого сосредоточиться на «форме» конкретного объекта, который вы имеете в виду. Итак, по большей части, вы хотите просто придерживаться своего второго определения, т. Е.
{name: string; age: number}
. Тем не менее, вы можете определять вещи более обобщенно, ноobject
, вероятно, это не тот путь, которым вы хотите пойти. Не могли бы вы немного подробнее объяснить, чего вы пытаетесь достичь? Например, если вы хотите определить «универсальный» объект с любыми свойствами, полезный способ сделать этоRecord<string,any>
— нетobject
.4. Ааа, хорошо! Это действительно проницательно для меня. Спасибо!