gpt4 book ai didi

Typescript:如何使用 import 语句声明命名空间?

转载 作者:行者123 更新时间:2023-12-05 05:59:13 28 4
gpt4 key购买 nike

我正在使用 cypress 并声明命名空间来推断自定义命令的类型。

index.d.ts

declare namespace Cypress {
interface Chainable {
commandA: typeof commandA;
}
}

commands.ts

const commandA = ...;

Cypress.commands.add('commandA', commandA);

在这种情况下,我必须在 cypress/types/net-stubbing 包中使用 CyHttpMessages 类型。所以我在 commands.ts 文件中导入了该类型。

commands.ts(带导入)

import { CyHttpMessages } from 'cypress/types/net-stubbing';

...

但是,在导入该类型的 index.d.ts 文件后,文件被红线打断了。此文件找不到 commandA 函数的类型。我认为 import 语句是导致此问题的原因。

如何将 import 语句与 declare namespace 一起使用?问题是什么?感谢您的阅读。

最佳答案

在为自定义 Cypress 命令设置 Typescript 定义时,您需要使用declare global{}

documentation provides an example但根据提供的信息,它应该是这样的:

index.d.ts

/// <reference types="cypress" />

declare global {
namespace Cypress {
interface Chainable {
commandA(): Chainable<Element>
}
}
}

关于Typescript:如何使用 import 语句声明命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68252536/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com