当前位置: 首页 > 知识库问答 >
问题:

typescript:无法声明接口

钱德海
2023-03-14

我正在使用typescript,无法使用其他文件中声明的接口
我的global.d.ts看起来像这样。

declare interface IPropSendEmail {
    from: string,
    to: string,
    subject: string,
    html: string,
}

下面是tsconfig.json

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "outDir": "./build",
        "esModuleInterop": true,
        "declaration": true,
        "strict": true,
        "typeRoots": [
            "types"
        ],
    }
}

目录结构如下所示

    | -- src
            |-- types
                     |-- global.d.ts
            |-- util
                     |-- common.ts
            |-- ...

在< code>common.ts文件中使用它

export async function sendEmail({ from, to, subject, html }: IPropSendEmail) {
     // function code here
     ...
}

共有1个答案

劳灵均
2023-03-14

应该能行。但是,我建议清除配置中奇怪的部分:

在您的< code>tsconfig.json中:

  • 删除类型根;
  • 添加包含
{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "outDir": "build",
        "esModuleInterop": true,
        "declaration": true,
        "strict": true
    },
    "include": ["src"]
}

global.d.ts中,关键字声明是无用的:

interface IPropSendEmail {
    from: string,
    to: string,
    subject: string,
    html: string,
}

确保此文件中没有导出导入

 类似资料:
  • 主要内容:CalcThirdPartyJsLib.js 文件代码:,Calc.d.ts 文件代码:,CalcTest.ts 文件代码:,CalcTest.js 文件代码:,实例TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库。虽然通过直接引用可以调用库的类和方法,但是却无法使用TypeScript 诸如类型检查等特性功能。为了解决这个问题,需要将这些库里的函数和方法体去掉后只保留导出类型声明,而产生了一个描述 JavaS

  • 主要内容:类型断言(Type Assertion),类型推断,变量作用域变量是一种使用方便的占位符,用于引用计算机内存地址。 我们可以把变量看做存储数据的容器。 TypeScript 变量的命名规则: 变量名称可以包含数字和字母。 除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。 变量名不能以数字开头。 变量使用前必须先声明,我们可以使用 var 来声明变量。 我们可以使用以下四种方式来声明变量: 声明变量的类型及初始值: 例如: 声明变量的类型,

  • TypeScript 编译器会将程序中多个具有相同名称的声明合并为一个声明。 但这并不是说 TypeScript 会随意的合并两个名称相同的字符串变量,这显然是不符合语法规定的,那么本节将介绍什么样的声明可以进行合并。 1. 慕课解释 TypeScript 中的声明会创建以下三种实体之一:命名空间、类型或值。 来看以下声明都创建了什么实体: 声明类型 创建了命名空间 创建了类型 创建了值 Name

  • 本节介绍 var let const 这三种变量的声明方式,重点讨论作用域与变量提升的相关知识点,这部分往往也是面试常考部分,需要多加注意。 说明: 在使用 TypeScript 进行变量声明时,一般建议添加对应的变量类型,由于本节是整个系列教程的第一节,还未介绍 TypeScript 的类型系统,所以本节的例子仍采用 JavaScript 的变量声明方式。虽然在变量声明时没有添加变量类型,但是

  • 在我的一个项目中,我引入了Vue来做一些前端工作,但在TypeScript和jQuery中仍然有很多遗留代码。所有遗留代码都在'ts'文件夹中,新的Vue单文件组件和一些引导ts文件都在'src'中。在VSCode中看起来一切正常,甚至直接在命令行上调用'tsc'也能正常工作,但是当我从'ts'文件夹中导入声明/定义(模块)时,WebPack总是抱怨。 项目文件夹结构 错误消息npm生成 找不到.

  • 我查看了许多示例代码和文档,无论是隐式构造函数还是显式构造函数,您都可以通过使用类名前面的来声明新类,但随后它们会声明一些值。因此,我认为在某个外部作用域声明它之前,实例是不存在的。