【发布时间】:2018-06-16 12:50:48
【问题描述】:
我是打字稿的新手。我有一个从 javascript 转换的大型程序。我正在处理错误并添加类型,但我不知道如何解决这个问题。
myModule.ts
export const foo = { ... }
export const bar = { ... }
我的文件.ts
import * as myModule from './myModule'
function doesSomething(input: string) {
return myModule[input]
}
Typescript 编译器错误:元素隐式具有“any”类型,因为类型“typeof "./myModule"' 没有索引签名。
我尝试过声明模块和命名空间或尝试实现接口,但似乎不起作用。我认为解决方案是在单独的文件中声明模块,但我似乎无法让 TS 识别它。这就是我认为可行的方法:
myModule.d.ts
interface MyModule {
[key: string]: any
}
declare module 'myModule' {
const myModule: MyModule
export = myModule
}
也许添加一个指向 myFile 的三斜杠:
我的文件.ts
/// <reference path="./myModule.d.ts" />
import * as myModule from './myModule'
function doesSomething(input: string) {
return myModule[input]
}
但这并没有真正改变任何事情。
【问题讨论】:
-
导出您的界面并重试
-
@Hey24sheep 似乎没有任何改变
标签: typescript