Typescript: 尽管忽略了tsconfig中的列表,但仍编译了2.0 @types声明

创建于 2016-09-29  ·  3评论  ·  资料来源: microsoft/TypeScript

TypeScript版本: 2.0.3


完整的项目在这里

tsconfig.json

{
    "compilerOptions": {
        "target": "es6",
        "module": "system",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false
    },
    "exclude": [
        "../node_modules"
    ]
}

预期行为:

对于要编译的项目,并按照tsconfig的指定,将忽略node_modules目录,因此该目录中没有错误。

实际行为:

node_modules/@types目录中的许多错误,例如:

[0] node_modules/@types/core-js/index.d.ts(21,14):错误TS2300:标识符'PropertyKey'重复。

[0] node_modules/@types/core-js/index.d.ts(85,5):错误TS2687:所有“名称”声明必须具有相同的修饰符。

[0] node_modules/@types/core-js/index.d.ts(145,5):错误TS2403:后续变量声明必须具有相同的类型。 变量“ [Symbol.unscopables]”的类型必须为“ {copyWithin:boolean; 条目:布尔值; 填充:布尔值; 查找:布尔值; findIndex:布尔值; 键:...”,但此处键入“ any”。

[0] node_modules/@types/core-js/index.d.ts(262,5):错误TS2687:所有'flags'声明都必须具有相同的修饰符。

[0] node_modules/@types/core-js/index.d.ts(276,5):错误TS2687:“ EPSILON”的所有声明必须具有相同的修饰符。

[0] node_modules/@types/core-js/index.d.ts(311,5):错误TS2687:“ MAX_SAFE_INTEGER”的所有声明必须具有相同的修饰符。

Question

最有用的评论

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false,
        "types": []
    },
    "exclude": [
        "../node_modules"
    ]
}

我认为类型应该在compilerOptions

所有3条评论

@types自动包含在编译中。 要排除它们,请将"types": []到您的tsconfig.json

@mhegazy即使将此作为我的tsconfig:

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false
    },
    "types": [],
    "exclude": [
        "../node_modules"
    ]
}

我仍然收到错误,例如

[1] node_modules/@types/core-js/index.d.ts(21,14):错误TS2300:标识符'PropertyKey'重复。

[1] node_modules/@types/core-js/index.d.ts(85,5):错误TS2687:所有“名称”声明必须具有相同的修饰符。
[1] node_modules/@types/core-js/index.d.ts(145,5):错误TS2403:后续变量声明必须具有相同的类型。 变量“ [Symbol.unscopables]”的类型必须为“ {copyWithin:boolean; 条目:布尔值; 填充:布尔值; 查找:布尔值; findIndex:布尔值; 键:...”,但此处键入“ any”。

[1] node_modules/@types/core-js/index.d.ts(262,5):错误TS2687:所有'flags'声明都必须具有相同的修饰符。

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false,
        "types": []
    },
    "exclude": [
        "../node_modules"
    ]
}

我认为类型应该在compilerOptions

此页面是否有帮助?
0 / 5 - 0 等级