Я запускаю код, введенный пользователем в JSContext, и оцениваю его. Хотелось бы иметь возможность получить такой оцениваемый результат. Я пробовал несколько вещей (см. Ниже), но, похоже, это не сработало. Есть предложения, как это сделать? Мне бы очень не хотелось анализировать строку и пытаться классифицировать ее таким образом, потому что я разрешаю сложные структуры, например, array.length будет Int, а не Array, поэтому потребуется довольно много кода.
let context = JSContext()!
let ans = context.evaluateScript(value) // need type for this
if let typeCheck = ans as? String {
// always fails
}
let y = "1"
print(x is Int) // false
print(type(of: y) == type(of: 1)) // false



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Instad of js context you can use WKWebView evaluate java script. something like this
self.webView.evaluateJavaScript (self.scriptValue)
Let me know if it helps or you need to ask something.
JSValue имеет методы toNumber(), toBool() ... (и флаги isNumber, isBool ... для проверки типов).
let value: JSValue = jsContext.evaluateScript("1 + 2")
if value.isNumber {
let number: NSNumber = value.toNumber()
number is Int // true
}