1
下似乎是合法的打字稿:模块和接口可以有相同的名称?
interface Vec2 {
x: number;
y: number;
}
module Vec2 {
export function create(x?: number, y?: number) : Vec2 {
return {x: x||0, y: y||0};
}
export function length(v: Vec2) : number {
return Math.sqrt(v.x * v.x + v.y * v.y);
}
}
const v:Vec2 = Vec2.create(1, 2);
const len = Vec2.length(v);
因为你有一个结构类型VEC 2和上VEC 2结构操作功能的模块,它是有点儿整洁。 我想知道这是不是一个好主意。最初我以为我应该得到一个编译器错误。
谢谢。我会尝试尝试一下,看看我是否设法以某种方式将自己与它混淆。我发现在结构(接口)上运行的函数很有用,因为它允许我更轻松地在同一个应用程序中使用three.js向量和cannon.js向量。但是当函数和数据不属于同一类时,我不知道如何命名这些东西。 – pixelmike