Javascript macOS 错误:命名参数必须作为对象传递

2024-01-26

我正在尝试为任务管理器实现自动化Things 3 https://culturedcode.com/things/在 macOS 上使用 JXA(用于 macOS 自动化的 Javascript),我运行它时出现一个奇怪的错误。我花了无数的时间尝试自己并在其他人的帮助下解决这个问题。我正在尝试使用文档中描述的以下方法:

如下:

// Set TaskApp as the app to use
var TaskApp = Application('Things3');

// Get the ToDo from toDos
var task = TaskApp.toDos["test555342343"]

// Get today as a date
var today = new Date()

// Schedule the task for Today
task.schedule(task.id(), {for: today})

这会返回错误:Error: Error: Named parameters must be passed as an object.

当使用另一种方法时(例如show)规范者按预期工作:

Example:

// Set TaskApp as the app to use
var TaskApp = Application('Things3');

// Get the ToDo from toDos
var task = TaskApp.toDos["test555342343"]

// Bring Things3 to the Forground
TaskApp.activate()

// Show the task
task.show(task.id())

将显示所选的待办事项。创建任务并将截止日期设置为date对象也会产生正确的结果(截止日期为date).

仅当您在 macOS 上安装了 things3 并且引用了脚本库时才能找到此文档。我已将文档添加为 PDF。所描述的错误也适用于move方法。不是解析日期,而是解析日期List Object它将解决相同的错误。

文档 PDF 链接 →Link https://www.dropbox.com/s/19rgsv4rzo0oi1g/Things3.pdf?dl=0


Things 文档是错误的:schedule是一种方法Application,不属于ToDo,这就是为什么它需要一个 todo 说明符(如果它已经是 ToDo 对象的属性,则不需要该说明符)。因此工作代码是:

// Set TaskApp as the app to use
var TaskApp = Application('Things3')

// Get the ToDo from toDos
var task = TaskApp.toDos["test555342343"]

// Get today as a date
var today = new Date()

// Schedule the task for Today
TaskApp.schedule(task, {for: today})

注意task已经是一个 ToDo 说明符;你不需要绕路task.id(),它将 ToDo 说明符转换为 ID 字符串,然后再让schedule方法将其强制转换回说明符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript macOS 错误:命名参数必须作为对象传递 的相关文章

随机推荐