TSLint抱怨不应该使用名称空间,据我所知,常识是它们不应再被使用,因为它们是特殊的TypeScript构造。
所以,我有一个简单的Timestamp接口:
export interface Timestamp {
seconds: number | Long;
nanos: number;
}
由于接口中缺少静态函数,我使用命名空间来组织该功能,如下所示:
export namespace Timestamp {
export function now(): Timestamp {
...
}
}
如果没有命名空间,你会如何建模?以下构造看起来很难看,有另一种方式吗?
export const Timestamp = {
now: () => {
...
}
}
答案 0 :(得分:-1)
所以,我检查了lib.es6.d.ts,它看起来像一个" const对象"真的是要走的路:
interface DateConstructor {
...
now(): number;
...
}
declare const Date: DateConstructor;
有趣的是,以下结构也有效,我认为这是"清洁"的方法:
export interface Timestamp {
seconds: number | Long;
nanos: number;
}
export class Timestamp {
public static now(): Timestamp {
...
}
}