鍍金池/ 問答/HTML/ 如何讓Dva與Typescript集成

如何讓Dva與Typescript集成

1、原本項(xiàng)目使用了dva,在集成typescript時(shí),參考了dva官方給的例子

clipboard.png

按照例子和我的理解,應(yīng)該是通過在global.d.ts重新聲明了require來實(shí)現(xiàn)對(duì)typescript的支持,但是我用的時(shí)候出現(xiàn)了錯(cuò)誤:

clipboard.png

以下是錯(cuò)誤涉及到的代碼:


//  tsconfig.json
{
  "compilerOptions": {
    "sourceMap": true,
    "target": "es6",
    "jsx": "react",
    "module": "commonjs",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "noImplicitAny": false,
    "noImplicitReturns": false,
    "removeComments": true,
    "strictNullChecks": false,
    "outDir": "build",
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "lib": [
      "es6",
      "es7",
      "dom"
    ],
    "baseUrl": "./src",
    "paths": {
      "IconFont": [
        "src/components/Iconfont"
      ]
    }
  },
  "exclude": [
    "dist",
    "build",
    "node_modules"
  ]
}

// global.d.ts
declare var require: {
  <T>(path: string): T;
  (paths: string[], callback: (...modules: any[]) => void): void;
  ensure: (paths: string[], callback: (require: <T>(path: string) => T) => void) => void;
};

// package.json
"devDependencies": {
    "awesome-typescript-loader": "^4.0.0",
    "tslint": "^5.10.0",
    "typescript": "^2.8.3",
  },
  "dependencies": {
    "@types/react": "^16.3.14",
    "@types/react-dom": "^16.0.5",
    "dva": "^2.1.0",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
}

// ./node_modules/@types/node/index.d.ts 報(bào)錯(cuò)指向的文件
declare var require: NodeRequire;

interface NodeModule {
    exports: any;
    require: NodeRequireFunction;
    id: string;
    filename: string;
    loaded: boolean;
    parent: NodeModule | null;
    children: NodeModule[];
    paths: string[];
}

請(qǐng)各位幫忙看一下,謝謝了

回答
編輯回答
憶當(dāng)年

自己搞環(huán)境坑會(huì)比較多,分享一個(gè)別人搭好的項(xiàng)目直接拿來用吧,地址

2017年12月24日 10:37