slint-ui/slint · error · napi::Error

expect Number, got: {vt:?}

Error message

expect Number, got: {vt:?}

What it means

Error "expect Number, got: {vt:?}" thrown in slint-ui/slint.

Source

Thrown at api/node/rust/interpreter/value.rs:33

use slint_interpreter::Value;
use smol_str::SmolStr;

/// A dynamic-length argument list for calling JS functions with a variable
/// number of arguments. Implements `JsValuesTupleIntoVec` so it can be used
/// directly with `Function::call`.
pub struct DynArgs(pub Vec<napi::sys::napi_value>);

impl JsValuesTupleIntoVec for DynArgs {
    fn into_vec(self, _env: napi::sys::napi_env) -> Result<Vec<napi::sys::napi_value>> {
        Ok(self.0)
    }
}

/// Safely extract a f64 from an Unknown, failing if the type is wrong.
fn expect_number(unknown: Unknown<'_>) -> Result<f64> {
    match unknown.get_type()? {
        ValueType::Number => unknown.coerce_to_number()?.get_double(),
        vt => Err(napi::Error::new(
            napi::Status::NumberExpected,
            format!("expect Number, got: {vt:?}"),
        )),
    }
}

/// Safely extract a String from an Unknown, failing if the type is wrong.
fn expect_string(unknown: Unknown<'_>) -> Result<String> {
    match unknown.get_type()? {
        ValueType::String => Ok(unknown.coerce_to_string()?.into_utf8()?.as_str()?.to_owned()),
        vt => Err(napi::Error::new(
            napi::Status::StringExpected,
            format!("expect String, got: {vt:?}"),
        )),
    }
}

/// Safely extract a bool from an Unknown, failing if the type is wrong.

View on GitHub (pinned to 3fd8f2ec03)

Solutions

  1. Pass a JavaScript number where the Slint value expects a Number.
  2. Convert the value with Number() before passing it.

When it happens

Trigger: Thrown at api/node/rust/interpreter/value.rs:33 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of slint-ui/slint@3fd8f2ec03 (2026-08-19). Data as JSON: /api/errors/89358d0c3712dd8f. Report an issue: GitHub.