我想在TS中使用这样的代码:
// task.ts
export type Task = {
name: string
description: string
cost: number
done: boolean
}
export function increaseCost(task: Task, percent: number) {
return { ...task, cost: task.cost * (1 + percent / 100) }
}
//index.ts
import {Task, increaseCost} from "./task.ts"
let task: Task = {...}
Task.increaseCost(task, 15)
Task.anotherFunction(task)
Task.yetAnotherFunction(task)
基本上我想做任务作为一个命名空间。但type任务正在干扰。
一种选择是:
// task.ts
export type Task
然后
//index.ts
import * as Task from "task.ts"
let task: Task.Task // this seems redundant
另一种选择:
// task.ts
export type Type
//index.ts
import * as Task from "task.ts"
let task: Task.Type // seems odd/weird
你会怎么做?如何区分模块/命名空间Task和Task类型?
1条答案
按热度按时间k2arahey1#
您可以使用
module
或namespace
关键字,但不再推荐使用module
:一个在线演示在这里stackblitz type。(打开控制台查看结果。)