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