gpt4 book ai didi

node.js - 如何在 typescript 文件中使用现有的javascript文件?

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:59 25 4
gpt4 key购买 nike

我在 Nodejs + Express 中已有项目。目前一切都在 es5 上运行。

现在我在同一个项目中添加了 typescript ,我想在 typescript 中进行所有新的开发。但我在访问现有的 javascript 文件时遇到问题。

我发现我可以为每个现有的 javascript 文件创建定义文件 xx.d.ts (不确定这是否是正确的方法),然后在 typescript 文件中使用它。

例如我有 javscript 文件

myFile.js

function myClass(){
//some functions here associated with this variable
}

exports.myData = new myClass();

现在我想在我的新 ts 文件中使用它

所以我在 ts 文件中所做的访问是

declare function require(path: string): any;

var auth = require('./myFile').myData;

我不确定这是否是正确的方法。其次,我也尝试了 myFile.d.ts 文件。

我用以下方式定义了这个文件

declare module './myFile' {
export var myData: any
}

但这给出了相对路径的错误 -TS2436环境模块声明不能指定相对模块路径

如果有人有解决此问题的想法或建议是否可以采用第一种方法,请告诉我。

最佳答案

我很久以前就找到了解决方案,但没有发布在这里。我把答案补充在这里,希望对大家有帮助

在 tsconfig.json 中进行更改。这里最重要的部分是类型和 typeRoots 属性

{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"declaration": true,
"moduleResolution": "node",
"types": ["node"],
"typeRoots": ["node_modules/@types"],
"lib": [ "es2015","dom" ]
}
}

现在转到 package.json 并根据需要添加一些类型定义包

 "@types/node": "~8.0.54",

这样配置后,没有人会报错,我们不需要在每个文件中单独指定声明

关于node.js - 如何在 typescript 文件中使用现有的javascript文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45309627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com