Некоторые ответы здесь являются фактами, но это не решило их для меня.Моя ситуация была немного хитрой.
Это точная строка кода, которую я использую
this.actions = _orderBy(this.actions, columnName, (this.sort.dir || this.defaultSort.dir))
, где typcript выдает ошибку во время компиляции, как упоминалосьвыше.
Теперь я должен был упомянуть об этом в вопросе, что я не передаю непосредственно asc
или desc
, но выражение, которое оценивает один из них.
Я просто имелсделать следующее, чтобы заставить его работать
[(this.sort.dir || this.defaultSort.dir) === 'asc' ? 'asc' : 'desc']
или лучшую версию, как предложил Авин
(this.sort.dir || this.defaultSort.dir) as ('asc' | 'desc')
И, следовательно, чтобы интерпретатор понимал, что любое из значений может быть единственным возможным выходом.
Так что для любого, в основном для всех, кто собирается передавать строковую переменную, которая будет иметь любое из двух значенийможет следовать за этим маленьким взломом, чтобы заставить вещи работать.