具有 Typescript 类型的 Svelte Reactive 值

Mic*_* M. 3 typescript svelte

我正在尝试从 Svelte 和 TypeScript 中的 Date 对象获取时间戳。我希望每当 Date 对象更新时时间戳都会更新,因此我试图使其具有反应性。这是我尝试过的代码:

let date: Date = new Date();
$: timestamp: string = date.getHours() + ':' + date.getMinutes() + ":" + 
    date.getSeconds(); // timestamp in format hh:mm:ss
Run Code Online (Sandbox Code Playgroud)

但我从 TypeScript: 收到此错误'string' only refers to a type, but is being used as a value here.。如果我删除该类型,那么一切都会正常。我认为冒号的多种含义使编译器感到困惑,但我不确定。有什么办法可以在保持类型的同时做到这一点吗?

Sam*_*jig 8

在您的情况下没有理由这样做,因为 TypeScript 会推断 type string

但是,根据Svelte TypeScript 文档,如果您需要使用更复杂的类型来执行此操作,请执行以下操作:

let timestamp: string;
$: timestamp = date.getHours() + ':' + date.getMinutes() + ":" + 
    date.getSeconds(); // timestamp in format hh:mm:ss
Run Code Online (Sandbox Code Playgroud)