gpt4 book ai didi

typescript - index.d.ts 错误 TS2307 : Cannot find module my own module

转载 作者:行者123 更新时间:2023-12-03 13:50:48 25 4
gpt4 key购买 nike

我面临一个我无法解决的问题。
我想在我的类文件之间共享一些接口(interface)和类型。

我的 repo 是这样的:

test
-> dist/
-> src/
-> index.ts
-> .babelrc
-> .eslintrc.js
-> index.d.ts
-> package.json
-> tsconfig.json

index.d.ts :
declare module test { // I've try with 'declare namespace test' but the result is the same
export interface LabeledValue {
label: string;
size: number;
}
}

如果我导入 LabeledValueindex.ts我有一个错误,我不明白原因: import { LabeledValue} from 'test'; // TS2307: Cannot find module 'test'.
src/index.ts
import {LabeledValue} from 'test';

function printLabel(labeledObj: LabeledValue) {
console.log(labeledObj.label);
}

let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);

包.json:
{
"name": "test",
"types": "index.d.ts",
"version": "1.0.0",
"description": "test",
"author": "oyabi",
"license": "MIT",
"private": true,
"scripts": {
"type-check": "tsc --noEmit",
"type-check:watch": "yarn type-check --watch",
"build": "npm run build:types && npm run build:js",
"build:types": "tsc --emitDeclarationOnly",
"build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline"
},
"dependencies": {
"axios": "^0.19.0",
"body-parser": "^1.18.3",
"express": "^4.16.4",
"helmet": "^3.21.2",
"morgan": "^1.9.1",
"winston": "^3.1.0"
},
"devDependencies": {
"@babel/cli": "^7.7.0",
"@babel/core": "^7.7.2",
"@babel/plugin-syntax-class-properties": "^7.0.0",
"@babel/polyfill": "^7.7.0",
"@babel/preset-env": "^7.7.1",
"@babel/preset-typescript": "^7.7.2",
"@babel/runtime": "^7.7.2",
"@types/express": "^4.17.2",
"@types/helmet": "^0.0.45",
"@types/morgan": "^1.7.36",
"@types/qrcode": "^1.3.4",
"@typescript-eslint/eslint-plugin": "^2.7.0",
"@typescript-eslint/parser": "^2.7.0",
"apidoc": "^0.18.0",
"babel-core": "^7.0.0-bridge",
"babel-eslint": "^10.0.1",
"babel-jest": "^24.8.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-airbnb": "^4.2.0",
"babel-preset-env": "^1.7.0",
"eslint": "^6.6.0",
"eslint-config-airbnb-base": "^14.0.0",
"eslint-config-prettier": "^6.5.0",
"eslint-friendly-formatter": "^4.0.1",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jest": "^23.0.4",
"eslint-plugin-prettier": "^3.1.0",
"jest": "^24.8.0",
"moxios": "^0.4.0",
"nodemon": "^1.19.4",
"prettier": "^1.19.1",
"retire": "^2.0.1",
"supertest": "^4.0.2",
"typescript": "^3.7.2",
"uuid": "^3.3.2"
}
}

.babelrc
{
"presets": ["@babel/typescript",
["airbnb", {
"useBuiltIns": "usage"
}]
],
"plugins": [
"syntax-class-properties",
"transform-class-properties"
]
}

.eslintrc
module.exports = {
root: true,
parser: "@typescript-eslint/parser",
parserOptions: {
sourceType: "module",
project: "./tsconfig.json"
},
env: {
node: true,
jest: true
},
extends: [
"airbnb-base",
"plugin:@typescript-eslint/recommended",
"plugin:jest/recommended",
"plugin:prettier/recommended",
"prettier/@typescript-eslint",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript"
],
plugins: ["@typescript-eslint", "jest", "import"],
rules: {
"import/no-commonjs": "error",
"import/no-amd": "error",
// allow debugger during development
"no-debugger": process.env.NODE_ENV === "production" ? 2 : 0,
"no-underscore-dangle": 0,
"prettier/prettier": [
2,
{
printWidth: 80,
singleQuote: true,
trailingComma: "all"
}
]
},
settings: {
"import/resolver": {
node: {
extensions: [".js", ".jsx", ".ts", ".tsx"]
}
}
}
};


tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"declaration": true,
"outDir": "./dist",
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"noImplicitThis": true,
"esModuleInterop": true,
"resolveJsonModule": true
},
"include": ["index.d.ts"]
}

我的真实代码更复杂,但您对问题有一个很好的了解。
错误出现在 Visual Studio Code 和 yarn build (使用真实代码)。使用此代码,您可以使用 yarn tsc src/index.ts显示错误。

你知道我该如何解决这个问题吗?

最佳答案

我通过安装 eslint-import-resolver-typescript 解决了我的问题和默认配置。

关于typescript - index.d.ts 错误 TS2307 : Cannot find module my own module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869229/

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