Javascript macOS Error: Named parameters must be passed as an object
Javascript macOS Error: Named parameters must be passed as an object
我正在尝试使用 JXA 在 macOS 上实现任务管理器 Things 3 的自动化(Javascript 用于 macOS 自动化),但我 运行 遇到了一个奇怪的错误。我花了无数个小时试图自己和在他人的帮助下解决这个问题。我正在尝试使用文档中描述的以下方法:
如下:
// 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})
这个returns错误:
Error: Error: Named parameters must be passed as an object.
当使用其他方法(如 show
)时,说明符按预期工作:
示例:
// 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
到它,这将解决相同的错误。
Link 到文档 PDF → Link
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
方法将其转换回说明符。
我正在尝试使用 JXA 在 macOS 上实现任务管理器 Things 3 的自动化(Javascript 用于 macOS 自动化),但我 运行 遇到了一个奇怪的错误。我花了无数个小时试图自己和在他人的帮助下解决这个问题。我正在尝试使用文档中描述的以下方法:
如下:
// 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})
这个returns错误:
Error: Error: Named parameters must be passed as an object.
当使用其他方法(如 show
)时,说明符按预期工作:
示例:
// 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
到它,这将解决相同的错误。
Link 到文档 PDF → Link
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
方法将其转换回说明符。