```ts
interface Token {
value: string
expires: string
}
function onClear() {
// TODO: clear
}
function setToken(token: string) {
localStorage.setItem(
'token',
JSON.stringify({
value: token,
expires: new Date('2023/1/2 10:00:00').toISOString(),
})
)
}
function checkToken() {
const tokenJson = localStorage.getItem('token')
if (tokenJson) {
const token: Token = JSON.parse(tokenJson)
const diff = Date.now() - new Date(token.expires).getTime()
if (diff >= 0) {
onClear()
return
}
setTimeout(onClear, diff)
}
}
checkToken()
```