Предполагая, что я хочу убедиться, что myKey
в { myKey: '' }
содержит только строки foo
, bar
, baz
, я мог бы достичь этого двумя способами.
// with a String Literal Type
type MyKeyType = 'foo' | 'bar' | 'baz';
// or with a String Enum
enum MyKeyType {
FOO = 'foo',
BAR = 'bar',
BAZ = 'baz'
}
Интересно, где все плюсы и минусы одного над другим, так как оба выглядят одинаково для меня (кроме того, как я мог бы получить доступ к значениям, например, при проверке состояния).
Единственное отличие, которое я нашел в документации TS: Enums - это реальные объекты во время выполнения, что может быть желательно в некоторых случаях.