弃用成员
@deprecated 注解会把属性、回调或函数标记为已弃用。
只要从声明该成员的组件之外访问该成员,编译器就会发出警告,并指向替代方案。
这让组件能够演进其公共 API,同时为用户提供迁移路径,而不是硬性破坏。
在声明前加上 @deprecated,后面跟括号中的消息:
in-out property <int> new-prop;@deprecated("Please use 'new-prop' instead") in-out property <int> old-prop <=> new-prop;slint
随后访问 old-prop 会发出警告:The property 'old-prop' has been deprecated: Please use 'new-prop' instead。
请写上你希望用户读到的消息。声明本身不会推导出任何内容,因此要说明什么取代了该成员,
即使它通过 <=> 别名指向其替代者也要如此。
当没有任何东西取代该成员时,把消息留空:
@deprecated("") in-out property <int> going-away;slint
此时警告只会显示 The property 'going-away' has been deprecated。
component Inner { in-out property <int> new-prop; @deprecated("Please use 'new-prop' instead") in-out property <int> old-prop <=> new-prop;
// No warning: accesses within the declaring component are fine. in-out property <int> internal: old-prop;}
export component Example { inner := Inner { new-prop: 42; }
// Warning: The property 'old-prop' has been deprecated: Please use 'new-prop' instead property <int> value: inner.old-prop;}slint
- 消息是必需的。
写
@deprecated("")可在不给出替代建议的情况下弃用。 - 消息必须是纯字符串字面量,不能包含任何
\{}表达式。 - 访问已弃用的成员只会产生警告,绝不会是错误,因此现有代码仍可继续编译。
- 从声明该成员的组件内部访问不会发出警告,因为该组件仍然需要实现该成员。
关于规范性规则,参见语言规范中的 弃用。
© 2026 SixtyFPS GmbH