解决类似问题时如何组织代码?
我有一个仅定义js对象外观的接口

interface Secured {
    security: string;
}


还有一个检查对象是否填充我的界面的函数

const isSecured: (x: any) => x is Secured = ......


我不知道人们在这种情况下如何构造代码,但我有一个主意

class Secured {
    static Type = interface......
    static isSecured = .....
}


但这看起来不好,我想

最佳答案

通常,代码是使用模块构造的。

看来SecuredisSecured总是要一起使用,所以似乎很自然
 将它们放在一个模块中,例如在secured.ts中。

当您从一个模块导出了多个事物时,可以对所有事物使用命名导出:

export interface Secured {
    security: string;
}

export const isSecured: (x: any) => x is Secured = ......


然后,从该模块导入时,可以使用名称空间导入在选定的名称空间中提供SecuredisSecured

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/

10-11 23:29