为什么不';我不允许声明一个在typescript中实现的函数吗?
我用参数类型和函数的全局定义创建了一个.d.ts文件。 只要全局函数是用javascript编写的,这就可以正常工作 转换为typescript时,我引用了.d.ts文件来导入类型。 但是在编译时,它会抱怨函数同时被声明和实现,aka为什么不';我不允许声明一个在typescript中实现的函数吗?,typescript,Typescript,我用参数类型和函数的全局定义创建了一个.d.ts文件。 只要全局函数是用javascript编写的,这就可以正常工作 转换为typescript时,我引用了.d.ts文件来导入类型。 但是在编译时,它会抱怨函数同时被声明和实现,aka错误TS2384:重载签名必须是环境签名或非环境签名。 为什么我不能在声明中引用我的d.ts文件?/为什么不允许我声明在typescript中实现的函数 在旧的C语言中,可以将h文件与当前文件的声明一起包含,这通常非常有用 我应该将实现、接口和函数增量放在哪里,如何
错误TS2384:重载签名必须是环境签名或非环境签名。
// test.d.ts
interface test_option {
a: boolean;
}
declare function test(options: test_option): boolean;
//test.ts
///
函数测试(选项:测试选项):布尔值{
返回!选项;
}
//test2.ts
///
log(test({a:true}));
事情就是这样。您可以为遗留JavaScript文件创建定义文件,也可以在typescript中实现它。无法为Typescript中实现的内容创建定义文件
解决方案似乎很简单,只需将函数的签名移动到实现,就可以了 事情就是这样。您可以为遗留JavaScript文件创建定义文件,也可以在typescript中实现它。无法为Typescript中实现的内容创建定义文件
解决方案似乎很简单,只需将函数的签名移动到实现,就可以了 不确定是否有理由创建d.ts,然后在typescript中实现它。您可以为javascript文件创建d.td。你不需要它来做。。。如果你想得到d.T,你仍然可以设置“声明”:true。在tsconfig中,编译器将为您创建自定义d.ts文件,但不确定您是否有理由创建d.ts,然后在typescript中实现它。您可以为javascript文件创建d.td。你不需要它来做。。。如果你想得到d.T,你仍然可以设置“声明”:true。在tsconfig so中,编译器将为您创建自定义d.ts文件,因为我有一个加载到所有页面的全局脚本,以及加载到特定页面的特定页面脚本,所以我希望能够从这两个文件运行全局函数。因为我有一个加载到所有页面的全局脚本,以及加载在特定页面上的特定页面脚本,我希望能够从这两个文件运行全局函数。
// test.ts
/// <reference path="test.d.ts" />
function test(options: test_option): boolean {
return !options.a;
}
// test2.ts
/// <reference path="test.d.ts" />
window.console.log(test({a: true}));