--- title: API 的历史债务 date: 2023-10-11 author: zombieJ --- 在升级 Ant Design 的过程中,你或许收到过这种警告: ```text Warning: [antd: XXX] `old prop` is deprecated. Please use `new prop` instead. ``` 这是因为 antd 在开发过程中,有一些 API 设计的不合理导致的历史债务。举个例子,在 antd v3 及以前,TreeSelect 的代码是从 Select 中直接复制出来并在此基础上做的拓展。他们的搜索样式存在差异: Select TreeSelect 而后的维护过程中,开发者希望可以受控控制搜索框的内容。而不巧的是,这个需求是不同的机缘巧合被提出并由不同的开发者贡献了代码。于是两者添加了不同的属性,一个叫做 `inputValue` 而另一个叫做 `searchValue`: ```tsx // Select 在 combobox 模式下,搜索框就是输入框,`inputValue` 看起来很合理