类'GeoJSON'错误地扩展了基类'FeatureGroup'

时间:2017-08-23 15:40:19

标签: typescript npm leaflet yarnpkg gulp-typescript

在我的项目中,我收到此错误消息:

test/node_modules/@types/leaflet/index.d.ts(856,11): error TS2415: Class 'GeoJSON' incorrectly extends base class 'FeatureGroup'.
  Types of property 'setStyle' are incompatible.
    Type '(style: StyleFunction) => this' is not assignable to type '(style: PathOptions) => this'.
      Types of parameters 'style' and 'style' are incompatible.
        Type 'PathOptions' is not assignable to type 'StyleFunction'.
          Type 'PathOptions' provides no match for the signature '(feature?: Feature<GeometryObject>): PathOptions'.

以下是输入文件:

test.ts

import { LatLngExpression } from 'leaflet'

的package.json

{
  "name": "test",
  "version": "0.0.1",
  "description": "",
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/leaflet": "^1.0.68",
    "gulp": "^3.9.1",
    "gulp-typescript": "^3.2.2",
    "typescript": "^2.4.2"
  }
}

tsconfig.json

{
  "compileOnSave": true,
  "compilerOptions": {
    "noEmitOnError": true,
    "target": "es5",
    "module": "amd",
    "moduleResolution": "node"
  },
  "include": [
    "test.ts"
  ]
}

gulpfile.js

const gulp = require('gulp');
const ts = require("gulp-typescript");

const tsProject = ts.createProject("tsconfig.json");

gulp.task('default', () => {
    const tsResult = tsProject.src().pipe(tsProject());
    return tsResult.js.pipe(gulp.dest(''));
});

如果我执行“yarn&amp;&amp; gulp”,则会出现错误 - 但是,如果我使用“npm install”代替纱线,则不会出现错误,如果我使用“tsc -p”则不会出现错误。而不是gulp文件。 此外,只要我有Typescript 2.4.1就没有任何错误 - 它在我更新到Typescript 2.4.2后出现。

我想将此报告为一个错误 - 但我不知道哪个部分负责:yarn,typescript,gulp-typescript,@ types / leaflet?

我怎么能掌握这个?

显然,我从一个较大的项目中提取了这个测试用例,我希望使用“yarn&amp;&amp; gulp”,这会导致错误。所以我想要修复 - 而不是上面的任何“解决方法”。

2 个答案:

答案 0 :(得分:0)

因为它似乎已经修复了#34;自动化&#34;。我的猜测是,npm和yarn的存储库之间存在不一致。

很难说 - 而且可能毫无用处。所以这个问题可能会被关闭或删除。

答案 1 :(得分:0)

将Typescript从版本2.4升级到2.5后,我遇到了类似的问题。更新@ types / leaflet模块为我解决了这个问题。

npm update @types/leaflet