小编M B*_*M B的帖子

我们如何在 TypeScript 中为非全局接口创建扩展方法?

我目前正在学习 TypeScript,但对如何实现非全局接口的扩展方法感到非常困惑。考虑以下示例:假设我有interface一个像这样的定义Cart

interface Cart {
    id(): string,
    name(): string,
    quantity(): number

    /* Other methods */
}
Run Code Online (Sandbox Code Playgroud)

然后,我想添加一个类似于以下内容的扩展方法:

Cart.prototype.isValid = function() {
    return this.quantity() > 0;
}
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,因为Cart不是类型,但我很困惑,因为Promise也定义为 an interface,但我可以成功地向其添加扩展方法。例如:

declare global {
    interface Promise<T> {
        hello(): string
    }
}

Promise.prototype.hello = function() {
    return "Hello!";
}

export {};
Run Code Online (Sandbox Code Playgroud)

是否可以扩展非全局接口,Cart如果可以,我该怎么做?

extension-methods typescript

6
推荐指数
1
解决办法
2622
查看次数

如何为Android单元测试生成代码覆盖率报告

我想开始为我的Android应用程序生成单元测试代码覆盖率报告,其中单元测试不在androidTest文件夹中,而是在test我创建的文件夹中。首先,我在build.gradle文件中添加了以下内容:

buildTypes {
    ...
    debug {
        debuggable true
        testCoverageEnabled true
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

运行./gradlew createDebugCoverageReportandroidTest文件夹中为我的测试生成报告,但在test文件夹中什么都没有。如何为test文件夹中的测试创建相同的覆盖率报告?

android unit-testing code-coverage

1
推荐指数
1
解决办法
4269
查看次数