Typescript 为什么此自定义类型定义不能正确导出函数?
我的Typescript项目中有一个npm依赖项(Typescript 为什么此自定义类型定义不能正确导出函数?,typescript,definitelytyped,Typescript,Definitelytyped,我的Typescript项目中有一个npm依赖项(electron is accelerator),它没有类型,既不是包的一部分,也不是DefiniteTyped的一部分。依赖项由一个模块组成,其中只有一个函数接受字符串并返回布尔值。我在src/@types/electron is accelerator中编写了一个类型定义,如中所述: 我试着这样执行这个函数: import { isAccelerator } from 'electron-is-accelerator'; console.l
electron is accelerator
),它没有类型,既不是包的一部分,也不是DefiniteTyped的一部分。依赖项由一个模块组成,其中只有一个函数接受字符串并返回布尔值。我在src/@types/electron is accelerator
中编写了一个类型定义,如中所述:
我试着这样执行这个函数:
import { isAccelerator } from 'electron-is-accelerator';
console.log(isAccelerator("Alt+Space"));
import isAccelerator = require("electron-is-accelerator")
isAccelerator("whatever")
但我得到以下运行时错误:
TypeError: electron_is_accelerator_1.isAccelerator is not a function
我怎样才能让它运行
Mytsconfig.json
:
{
"compilerOptions": {
"outDir": "./built",
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"sourceMap": false
},
"include": [
"src/**/*"
]
}
我上传了一个简单的演示示例,供任何想解决这个问题的人使用。它使用CommonJS模块。导出
语法导出函数:
module.exports = function (str) { ... };
module.exports
与上述示例中的ES模块默认导出
语法和您的命名导出声明不同,因此TS必须表示这些导入/导出<代码>电子加速器可以通过以下声明键入:
declare module "electron-is-accelerator" {
function isAccelerator(s: string): boolean;
export = isAccelerator;
}
导入如下所示:
import { isAccelerator } from 'electron-is-accelerator';
console.log(isAccelerator("Alt+Space"));
import isAccelerator = require("electron-is-accelerator")
isAccelerator("whatever")
如果启用,则可以将其写入ES默认导入:
import isAccelerator from "electron-is-accelerator"