Skip to content

废弃

@deprecated 注解将属性、回调或函数标记为已废弃。 只要该成员在声明它的组件之外被使用,编译器就会发出警告, 并且警告会携带该注解给出的消息:

component Inner {
in-out property <int> new-prop;
@deprecated("Please use 'new-prop' instead") in-out property <int> old-prop <=> new-prop;
}
export component Example {
inner := Inner { }
// Warning: The property 'old-prop' has been deprecated: Please use 'new-prop' instead
out property <int> value: inner.old-prop;
}
slint

该注解仅影响诊断信息。 已废弃的成员保留其声明赋予它的类型、可见性和行为, 编译结果与没有该注解时相同。

@deprecated 位于声明之前,在任何可见性或纯性修饰符之前, 并将消息放在括号中:

@deprecated("Compute it from 'new-prop' instead") in-out property <int> older-prop: 42;
@deprecated("Use 'new-callback' instead") callback old-callback();
@deprecated("Use 'new-function' instead") public pure function old-function() -> int { 1 }
slint
  • 消息是必需的。 不带括号的 @deprecated 会构成编译错误。
  • 消息必须是普通的字符串字面量。 其中的 \{} 模板表达式会构成编译错误。
  • 声明只能带有一次 @deprecated。

空消息 @deprecated("") 会将成员标记为已废弃,但不建议替代者。 此时警告只给出成员名字并结束,例如 The property 'old-prop' has been deprecated。

使用已废弃的成员是警告,而绝不是错误,因此针对它编写的代码仍可继续编译。 读取它、向它赋值、在元素上绑定它、用 <=> 为它设置别名、为它应用动画、 调用它以及为它设置处理程序,都会发出警告。

在声明该成员的组件内部使用不会发出警告, 因为该组件仍然必须实现它。


© 2026 SixtyFPS GmbH