我有这些依赖性:

"devDependencies": {
  "@types/node": "^4.0.27-alpha",
  "babel-core": "^6.10.4",
  "babel-loader": "^6.2.4",
  "babel-polyfill": "^6.9.1",
  "babel-preset-es2015": "^6.9.0",
  "babel-preset-stage-0": "^6.5.0",
  "ts-loader": "^0.8.2",
  "typescript": "^2.0.0",
  "webpack": "^1.13.1"
}

babelrc先生

{
  "presets": [
    "es2015",
    "stage-0"
  ]
}

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6",
        "noImplicitAny": false,
        "sourceMap": false,
        "outDir": "built"
    },
    "exclude": [
        "node_modules"
    ]
}

网页包.配置.js

module.exports = {
  entry: ['babel-polyfill', './src/'],
  output: {
    path: __dirname,
    filename: './built/bundle.js',
  },
  resolve: {
    modulesDirectories: ['node_modules'],
    extensions: ['', '.js', '.ts'],
  },
  module: {
    loaders: [{
      test: /\.tsx?$/, loaders: ['ts-loader', 'babel-loader'], exclude: /node_modules/
    }],
  }
};

/src/index.ts

async function foo() {
  const value = await bar();
  console.log(value);
}

function bar() {
  return new Promise((resolve, reject) => {
    return resolve(4);
  });
}

(async function run() {
  await foo();
}());

有了这个设置,它确实可以工作,我可以构建和运行它(正确地记录4).然而,我总是在网页上看到一些错误:

ERROR in ./src/index.ts
(4,32): error TS2304: Cannot find name 'regeneratorRuntime'.

ERROR in ./src/index.ts
(6,12): error TS2304: Cannot find name 'regeneratorRuntime'.

ERROR in ./src/index.ts
(31,451): error TS2346: Supplied parameters do not match any signature of call target.

ERROR in ./src/index.ts
(40,33): error TS2304: Cannot find name 'regeneratorRuntime'.

ERROR in ./src/index.ts
(41,12): error TS2304: Cannot find name 'regeneratorRuntime'.

这似乎与babel-polyfill有关.

我错过了什么?

推荐答案

(4,32):错误TS2304:找不到名称"regeneratorRuntime".

这是一个症状,即babel的输出被送入ts.这个订单是wrong

Fix

编译设置应该将TS输出馈送到Babel.

或者,你可以用Babel用@babel/preset-typescript来编译TypeScript.

More

用Babel:https://babeljs.io/docs/en/babel-preset-typescript编译TypeScript

Typescript相关问答推荐

如何获取嵌套对象属性的正确类型?

类型可分配给类型的约束,但可以用不同的约束子类型实例化

为什么空对象可以将类型断言为任何内容?

判断对象A中存在的对象B的键是否存在对象A中键的另一个数组值中

具有映射返回类型的通用设置实用程序

如何使用axios在前端显示错误体

在类型内部使用泛型类型时,不能使用其他字符串索引

从typescript中的对象数组中获取对象的值作为类型'

泛型函数即使没有提供类型

基于键的值的打字动态类型;种类;

根据另一个属性的值来推断属性的类型

在函数中打字推断记录的关键字

保护函数调用,以便深度嵌套的对象具有必须与同级属性函数cargument的类型匹配的键

基元类型按引用传递的解决方法

如何在React组件中指定forwardRef是可选的?

如何将对象数组中的键映射到另一种对象类型的键?

在Cypress中,是否可以在不标识错误的情况下对元素调用.Click()方法?

回调函数中的TypeScrip类型保护返回Incorect类型保护(具有其他未定义类型的返回保护类型)

我可以使用JsDocs来澄清Typescript实用程序类型吗?

可选通用映射器函数出错