В комментарии вы сказали:
Мне нужно для условной проверки. Например, if (interface contain property) делает определенную вещь
Вы не можете этого сделать. При выполнении операторов if
интерфейсы не существуют во время выполнения. Вся информация о типе TypeScript стирается при компиляции из TypeScript в JavaScript (есть некоторые объекты, созданные enum
, но информация о типе, связанная с ними, отсутствует).
Вы можете проверить, есть ли объект имеет особое свойство во время выполнения:
// Check if it has a property (either as an own property or an inherited one)
if ("propertyName" in someObject) {
// ...yes, it does...
}
или
// Check if it has a property (as an own property, ignoring inherited ones)
if (someObject.hasOwnProperty("propertyName")) {
// ...yes, it does...
}
Некоторые люди считают, что вам не следует использовать hasOwnProperty
в качестве такого метода, потому что он может быть переопределено, и вместо этого вы должны использовать его на Object.prototype
:
// Check if it has a property (as an own property, ignoring inherited ones)
if (Object.prototype.hasOwnProperty.call(someObject, "propertyName")) {
// ...yes, it does...
}