废弃
@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