我目前es3默认在tsconfig.json我的Electron 5.0.6项目文件中定位。我收到一条错误消息,提示我必须升级到至少才能使用TypeScriptes6的 getter/setter 功能。
现在我想知道如何为我的项目选择正确的 ECMAScript 版本。我显然想使用 ECMAScript 的最新功能,但我不知道升级到新版本将如何改变我的项目的平台支持。我仍然想支持较旧的操作系统版本,并想知道升级 ECMAScript 目标版本是否会以某种方式影响此问题,或者是否有其他原因不升级。
请告诉我是否需要在我的问题中添加更多信息。我很感激每一个答案。
我的失败代码(最小的、可重现的示例):
// my code
fn test() {
let mut list: Vec<Text> = Vec::new();
const ARRAY: [char; 3] = ['a', 'b', 'c'];
for (i, _) in ARRAY.iter().enumerate() {
list.push(Text::new(&ARRAY[i].to_string()));
}
}
// external crate
#[derive(Debug, Clone, Copy, PartialEq)]
struct Text<'a> {
pub text: &'a str,
}
impl<'a> Text<'a> {
pub fn new(text: &'a str) -> Self {
Text {
text
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译器:“借用时临时值下降”。下面有红色波浪线
ARRAY[i].to_string()
Run Code Online (Sandbox Code Playgroud)
我猜是经典的借用检查器问题?
我尝试将类型更改为&strs 而不是chars,一切正常:
// my code
fn test() {
let …Run Code Online (Sandbox Code Playgroud) char ×1
ecmascript-6 ×1
electron ×1
javascript ×1
node.js ×1
ownership ×1
rust ×1
string ×1
typescript ×1