Typescript 为npm实用程序手动添加类型脚本键入
我正在一个现有的JS项目中设置TypeScript,我正试图找出如何将打字添加到一个非类型化的npm模块中,因为我知道它会出现 这条线Typescript 为npm实用程序手动添加类型脚本键入,typescript,Typescript,我正在一个现有的JS项目中设置TypeScript,我正试图找出如何将打字添加到一个非类型化的npm模块中,因为我知道它会出现 这条线 从“foo”导入X 出错,找不到模块“foo” 在typings/modules中,我有一个foo文件夹,其中有一个index.d.ts文件,其中包含 declare module foo { export default class XXX{ } } 在父typings/index.d.ts中,我添加了 // 但还是什么都没有 我的tsco
从“foo”导入X代码>
出错,找不到模块“foo”
在typings/modules
中,我有一个foo
文件夹,其中有一个index.d.ts文件,其中包含
declare module foo {
export default class XXX{
}
}
在父typings/index.d.ts
中,我添加了
//
但还是什么都没有
我的tsconfig.json文件如下所示
{
"compilerOptions": {
"target": "esnext",
"baseUrl": "./src",
"jsx": "react",
"allowSyntheticDefaultImports": true,
"allowJs": true,
"moduleResolution": "node",
"module": "es2015",
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"typeRoots" : ["./typings/modules", "./node_modules/@types"]
},
"include": [
"./src/**/*.ts",
"./src/**/*.tsx"
]
}
您必须用引号声明模块:
declare module "foo" {
export default class XXX{
}
}
看起来很疯狂?不带引号声明的模块实际上类似于名称空间。因此,实际上并不是在代码中声明模块
从:
“内部模块”现在是“名称空间”。“外部模块”现在是
简单的“模块”,与ECMAScript 2015的术语一致,
(即模块X{等价于现在首选的名称空间X)
{)
另请参见:另加一条谢谢。我一不确定就马上测试并接受。