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

expect String, got: {vt:?}

Error message

expect String, got: {vt:?}

What it means

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

Source

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

    }
}

/// 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.
fn expect_bool(unknown: Unknown<'_>) -> Result<bool> {
    match unknown.get_type()? {
        ValueType::Boolean => Ok(unknown.coerce_to_bool()?),
        vt => Err(napi::Error::new(
            napi::Status::BooleanExpected,
            format!("expect Boolean, got: {vt:?}"),
        )),
    }
}

#[napi(js_name = "ValueType")]

View on GitHub (pinned to 3fd8f2ec03)

Solutions

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

When it happens

Trigger: Thrown at api/node/rust/interpreter/value.rs:44 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/e8a9617e875fde21. Report an issue: GitHub.