我正在使用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
...
}
应该能行。但是,我建议清除配置中奇怪的部分:
在您的< 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生成 找不到.
我查看了许多示例代码和文档,无论是隐式构造函数还是显式构造函数,您都可以通过使用类名前面的来声明新类,但随后它们会声明一些值。因此,我认为在某个外部作用域声明它之前,实例是不存在的。