解决类似问题时如何组织代码?
我有一个仅定义js对象外观的接口
interface Secured {
security: string;
}
还有一个检查对象是否填充我的界面的函数
const isSecured: (x: any) => x is Secured = ......
我不知道人们在这种情况下如何构造代码,但我有一个主意
class Secured {
static Type = interface......
static isSecured = .....
}
但这看起来不好,我想
最佳答案
通常,代码是使用模块构造的。
看来Secured
和isSecured
总是要一起使用,所以似乎很自然
将它们放在一个模块中,例如在secured.ts
中。
当您从一个模块导出了多个事物时,可以对所有事物使用命名导出:
export interface Secured {
security: string;
}
export const isSecured: (x: any) => x is Secured = ......
然后,从该模块导入时,可以使用名称空间导入在选定的名称空间中提供
Secured
和isSecured
:import * as Secured from '.../relative-path-to/secured';
// here we choose Secured as namespace name
let s: Secured.Secured | SomethingElse;
if (Secured.isSecured(s)) {
}
或者,您可以使用命名的导入并重命名其中的一些:
import {Secured as SecuredType, isSecured} from '.../relative-path-to/secured';
let s: SecuredType | SomethingElse;
if (isSecured(s)) {
}
关于javascript - 与类型相关的函数放在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51700586/