export interface Car {
Name: string;
Speed: number;
Manufactured: number;
}
const Speed: Car.Speed = 200;
В настоящее время Car.Speed
вызывает ошибку:
Cannot access 'Car.Speed' because 'Car' is a type, but not a namespace. Did you mean to retrieve the type of the property 'Speed' in 'Car' with 'Car["Speed"]'?
Вы можете «запросить» тип члена, используя следующий синтаксис:
const Speed: Car['Speed'] = 200;
Подробнее о типах поиска здесь.
Является ли автомобиль объектом?
Нет, это тип (интерфейс)
@АлексейЛ. - Нет, но это не метод доступа к свойству, потому что он находится в выражении типа, а не в выражении времени выполнения: Живая демонстрация. Алексей - Вау, это действительно круто.
Car["speed"], я думал, что синтаксис '[""]' зарезервирован только для объекта (по крайней мере, в javascript).
@Ajay - это JavaScript. Это часть объявления о типе, которая представляет собой TypeScript.
@T.J.Crowder как бы упоминается здесь Я постараюсь найти место с лучшим разрешением
@T.J.Crowder, см. также typescriptlang.org/docs/handbook/release-notes/…
Car.Speed сам по себе ничего не значит. Javascript не будет обрабатывать его после компиляции.